13 款開源的全文檢索引擎

http://www.iteye.com/news/27484

1.  Lucene 

Lucene的開發語言是Java,也是Java家族中最爲出名的一個開源搜索引擎,在Java世界中已經是標準的全文檢索程序,它提供了完整的查詢引擎和索引引擎,沒有中文分詞引擎,需要自己去實現,因此用Lucene去做一個搜素引擎需要自己去架構.另外它不支持實時搜索,但linkedin和twitter有分別對Lucene改進的實時搜素. 其中Lucene有一個C++移植版本叫CLucene,CLucene因爲使用C++編寫,所以理論上要比lucene快. 

官方主頁:http://lucene.apache.org/ 

CLucene官方主頁:http://sourceforge.net/projects/clucene/ 

2.  Sphinx 

Sphinx是一個用C++語言寫的開源搜索引擎,也是現在比較主流的搜索引擎之一,在建立索引的事件方面比Lucene快50%,但是索引文件比Lucene要大一倍,因此Sphinx在索引的建立方面是空間換取事件的策略,在檢索速度上,和lucene相差不大,但檢索精準度方面Lucene要優於Sphinx,另外在加入中文分詞引擎難度方面,Lucene要優於Sphinx.其中Sphinx支持實時搜索,使用起來比較簡單方便. 

官方主頁:http://sphinxsearch.com/about/sphinx/ 

3.  Xapian 

Xapian是一個用C++編寫的全文檢索程序,它的api和檢索原理和lucene在很多方面都很相似,算是填補了lucene在C++中的一個空缺. 

官方主頁:http://xapian.org/ 

4.  Nutch 

Nutch是一個用java實現的開源的web搜索引擎,包括爬蟲crawler,索引引擎,查詢引擎. 其中Nutch是基於Lucene的,Lucene爲Nutch提供了文本索引和搜索的API. 

對於應該使用Lucene還是使用Nutch,應該是如果你不需要抓取數據的話,應該使用Lucene,最常見的應用是:你有數據源,需要爲這些數據提供一個搜索頁面,在這種情況下,最好的方式是直接從數據庫中取出數據,並用Lucene API建立索引. 

官方主頁:http://nutch.apache.org/ 

5.  DataparkSearch 

DataparkSearch是一個用C語言實現的開源的搜索引擎. 其中網頁排序是採用神經網絡模型.  其中支持HTTP,HTTPS,FTP,NNTP等下載網頁.包括索引引擎,檢索引擎和中文分詞引擎(這個也是唯一的一個開源的搜索引擎裏有中文分詞引擎).能個性化定製搜索結果,擁有完整的日誌記錄. 

官方主頁:http://www.dataparksearch.org/ 

6.  Zettair 

Zettair是根據Justin Zobel的研究成果爲基礎的全文檢索實驗系統.它是用C語言實現的. 其中Justin Zobel在全文檢索領域很有名氣,是業界第一個系統提出倒排序索引差分壓縮算法的人,倒排列表的壓縮大大提高了檢索和加載的性能,同時空間膨脹率也縮小到相當優秀的水平. 由於Zettair是源於學術界,代碼是由RMIT University的搜索引擎組織寫的,因此它的代碼簡潔精煉,算法高效,是學習倒排索引經典算法的非常好的實例. 其中支持linux,windows,mac os等系統. 

官方主頁:http://www.seg.rmit.edu.au/zettair/about.html 

7.  Indri 

Indri是一個用C語言和C++語言寫的全文檢索引擎系統,是由University of Massachusetts和Carnegie Mellon University合作推出的一個開源項目. 特點是跨平臺,API接口支持Java,PHP,C++. 

官方主頁:http://www.lemurproject.org/indri/ 

8.  Terrier 

Terrier是由School of Computing Science,Universityof Glasgow用java開發的一個全文檢索系統. 

官方主頁:http://terrier.org/ 

9.  Galago 

Galago是一個用java語言寫的關於文本搜索的工具集. 其中包括索引引擎和查詢引擎,還包括一個叫TupleFlow的分佈式計算框架(和google的MapReduce很像).這個檢索系統支持很多Indri查詢語言. 

官方主頁:http://www.galagosearch.org/ 

10.  Zebra 

Zebra是一個用C語言實現的檢索程序,特點是對大數據的支持,支持EMAIL,XML,MARC等格式的數據. 

官方主頁:https://www.indexdata.com/zebra 

11.  Solr 

Solr是一個用java開發的獨立的企業級搜索應用服務器,它提供了類似於Web-service的API接口,它是基於Lucene的全文檢索服務器,也算是Lucene的一個變種,很多一線互聯網公司都在使用Solr,也算是一種成熟的解決方案. 

官方主頁:http://lucene.apache.org/solr/ 

12.  Elasticsearch 

Elasticsearch是一個採用java語言開發的,基於Lucene構造的開源,分佈式的搜索引擎. 設計用於雲計算中,能夠達到實時搜索,穩定可靠. Elasticsearch的數據模型是JSON. 

官方主頁:http://www.elasticsearch.org/ 

13.  Whoosh 

Whoosh是一個用純python寫的開源搜索引擎. 

官方主頁:https://bitbucket.org/mchaput/whoosh/wiki/Home
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章