在這個訊息相當繁雜的網路時代,我們已經學會瞭如何利用搜尋引擎這個強大的利器來找尋目標訊息,例如你會在Google上搜尋情人節如何討女朋友歡心,你也會在百度上尋找正規的整容醫療機構(儘管有很大一部分廣告騙子)。那麼如果在你自己開發的網站系統中需要能讓用戶搜尋一些重要的訊息,並且能以結構化的結果展現給用戶,下面分享的這9款Java搜尋引擎框架或許就可以幫助到你了。
1、Java 全文搜尋引擎框架 Lucene
毫無疑問,Lucene是目前最受歡迎的Java全文搜尋框架,確切地說,它是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文字分析引擎。 Lucene為開發人員提供了相當完整的工具包,可以非常方便地實現強大的全文檢索功能。以下有幾款搜尋引擎框架也是基於Lucene實現的。
官方網站:http://lucene.apache.org/
2、開源Java搜尋引擎Nutch
Nutch 是一個開源Java實現的搜尋引擎。它提供了我們運行自己的搜尋引擎所需的全部工具。包括全文搜尋和Web爬蟲。
利用Nutch,你可以做到以下這些功能:
每個月取幾十億網頁
為這些網頁維護一個索引
對索引文件進行每秒上千次的搜尋
搜尋結果
以最小的成本運作
官方網站:http://nutch.apache.org/
3、分散式搜尋引擎 ElasticSearch
Elastic一款為數不多的基於JSON進行索引的搜尋引擎。 ElasticSearch特別適合在雲端運算平台上使用。
官方網站:http://www.elasticsearch.org/
4、即時分散式搜尋引擎 Solandra
Solandra 是一個即時的分散式搜尋引擎,以使用為根據Apache Solr 和 。
其特性如下:
支援Solr的大多數預設特性 (search, faceting, highlights)
資料複製,分片,快取及壓縮這些都由Cassandra來進行
Multi-master (Multi-master (供讀寫)實時性高,寫操作完成即可讀到Easily add new SolrCores w/o restart across the cluster 輕鬆添加及重啟結點 官方網站:https://github.com/httpstakeub.com/Hakeub /Solandra 5、IndexTank IndexTank是一套基於Java的索引-即時全文搜尋引擎實現,IndexTank有以下幾個特點:索引更新即時生效Ruby, Rails, Python, Java, PHP, .NET & more!
支援靈活的排序與評分控制
支援面搜尋(facet search)
支持匹配高亮
支持海量擴充(Scalable from a personal blog to hundreds of millions of documents! )支援動態資料 官方網站:https://github.com/linkedin/indextank-engine『6、搜尋引擎Compass是一個強大的,事務的,高性能的對象/搜尋引擎映射(OSEM:object/search engine mapping)與一個Java持久層框架.Compass包括:
搜尋引擎抽象層(使用Lucene搜尋引薦)
OSEM (Object/Search Engine Mapping) 支援
事務管理
類似於Google的簡單關鍵字查詢語言
可擴展與模組化的框架
簡單的API
官方網站:http://www. compass-project.org/
7、Java全文搜尋伺服器 Solr
Solr也是基於Java實現的,並且是基於Lucene實現的,Solr的主要特性包括:高效、靈活的快取功能,垂直搜尋功能,高亮顯示搜尋結果。值得注意的是,Solr還提供一個很棒的Web介面來管理索引的資料。
官方網站:http://lucene.apache.org/solr/
8、Lucene圖片搜尋 LIRE
LIRE是一款基於Java的圖片搜尋框架,其核心也是基於Lucene
LIRE是一款基於Java的圖片搜尋框架,其核心也是基於Lucene的,利用該索引就能夠建立一個基於內容的圖像檢索(content- based image retrieval,CBIR)系統,來搜尋相似的圖像。 官方網站:http://www.semanticmetadata.net/lire/ 9、全文本搜尋引擎 Egothor Egothor是一個用Java編寫的開源而高效的全文本搜尋引擎。透過Java的跨平台特性,Egothor能應用於任何環境的應用,既可配置為單獨的搜尋引擎,又能用於你的應用作為全文檢索之用。 官方網站:http://www.egothor.org/cms/