16 款開源的全文搜索引擎

全文搜索引擎就是通過從互聯網上提取的各個網站的信息(以網頁文字爲主)而建立的數據庫中,檢索與用戶查詢條件匹配的相關記錄,然後按一定的排列順序將結果返回給用戶。

1、Apache Lucene Java 全文搜索框架

許可證:Apache-2.0 開發語言:Java 官網:https://lucene.apache.org/

Apache Lucene 是完全用 Java 編寫的高性能、功能齊全的全文檢索引擎架構,提供了完整的查詢引擎和索引引擎、部分文本分析引擎。目的是爲軟件開發人員提供一個簡單易用的工具包,以方便地在目標系統中實現全文檢索的功能,或者是以此爲基礎建立起完整的全文檢索引擎。

項目地址: https://www.oschina.net/p/lucene

2、Apache Solr 全文搜索服務器

許可證:Apache-2.0 開發語言:Java 官網:https://solr.apache.org/

Apache Solr 是基於 Lucene 的全文搜索服務器,也是最流行的企業級搜索引擎,其主要功能包括全文檢索、命中高亮、分面搜索、動態聚類、數據庫集成,以及對富文本(如 Word、PDF)的處理。Solr 高度可擴展,並提供了分佈式搜索和索引複製,Solr 4 還增加了 NoSQL 支持。

項目地址: https://www.oschina.net/p/solr

3、Elasticsearch 分佈式搜索引擎

許可證:Apache-2.0 開發語言:Java 官網:https://www.elastic.co/cn/elasticsearch/

Elasticsearch 是一個分佈式、RESTful 風格的搜索和數據分析引擎,能夠解決不斷湧現出的各種用例。作爲 Elastic Stack 的核心,Elasticsearch 會集中存儲你的數據,讓你飛快完成搜索,微調相關性,進行強大的分析,並輕鬆縮放規模。

項目地址: https://www.oschina.net/p/elasticsearch

4、Nutch 搜索引擎

許可證:Apache-2.0 開發語言:Java 官網:https://nutch.apache.org/

Nutch 是一個開源 Java 實現的搜索引擎。它提供了我們運行自己的搜索引擎所需的全部工具。包括全文搜索和 Web 爬蟲。

Nutch 的創始人是 Doug Cutting,他同時也是 Lucene、Hadoop 和 Avro 開源項目的創始人。

項目地址: https://www.oschina.net/p/nutch

5、RediSearch 高性能全文搜索引擎

許可證:AGPL 開發語言:C/C++ 官網:https://redis.io/docs/stack/search/

RediSearch 是一個高性能的全文搜索引擎,可作爲一個 Redis Module 運行在 Redis 上,是由 RedisLabs 團隊開發的。實現了 Redis 的查詢、二級索引和全文搜索。這些功能在文本查詢的基礎上實現了多字段查詢、聚合、精確短語匹配、數字過濾、地理過濾和矢量相似性語義搜索。

項目地址: https://www.oschina.net/p/redisearch

6、Sphinx Search 全文搜索引擎

許可證:GPL 開發語言:C/C++ 官網:http://sphinxsearch.com/

Sphinx 是一個開源的全文搜索服務器,從頭開始設計時就考慮到了性能、相關性(又名搜索質量)和集成的簡單性。它是用 C++ 編寫的,適用於 Linux(RedHat、Ubuntu 等)、Windows、MacOS、Solaris、FreeBSD 和其他一些系統。

Sphinx 讓你可以快速輕鬆地批量索引和搜索存儲在 SQL 數據庫、NoSQL 存儲或文件中的數據,或者即時索引和搜索數據,使用 Sphinx 就像使用數據庫服務器一樣。各種文本處理功能可以根據你的特定應用程序要求微調 Sphinx,並且許多相關功能確保你也可以調整搜索質量。

項目地址: https://www.oschina.net/p/sphinxsearch

7、ftserver 輕量精準全文搜索服務器

開發語言:Java FTServer (FTS) 是一個輕量精準全文搜索服務器,使用英文規則處理英文,使用中文規則處理中文,不需要切割中文爲單詞,可以支持中文字的任意排列,精準搜索中文長句子,輕鬆處理古文古詩詞,寫意句子不影響搜索,不依賴詞庫,搜索中文不漏詞。非常容易按需定製,直接編譯就可以使用,無需額外配置,同時可以嵌入到各種應用內部。

項目地址: https://www.oschina.net/p/ftserver

8、Xapian C++ 檢索引擎

許可證:GPL 開發語言:C/C++ 官網:https://xapian.org/

Xapian 是一個用 C++ 編寫的全文檢索程序,他的作用類似於 Java 的 lucene。儘管在 Java 世界 lucene 已經是標準的全文檢索程序,但是 C/C++ 世界並沒有相應的工具,而 Xapian 則填補了這個缺憾。

Xapian 是一個高度適應性的工具包,它允許開發人員輕鬆地將高級索引和搜索工具添加到他們自己的應用程序中。它內置支持多個權重模型系列,還支持一組豐富的布爾查詢運算符。

項目地址: https://www.oschina.net/p/xapian

9、Hibernate Search Hibernate 搜索框架

許可證:LGPL 開發語言:Java 官網:https://hibernate.org/search/

Hibernate Search 的作用是對數據庫中的數據進行檢索的。它是 hibernate 對著名的全文檢索系統 Lucene 的一個集成方案,作用在於對數據表中某些內容龐大的字段(如聲明爲 text 的字段)建立全文索引,這樣通過 hibernate search 就可以對這些字段進行全文檢索後獲得相應的 POJO,從而加快了對內容龐大字段進行模糊搜索的速度(sql 語句中 like 匹配)。

Hibernate Search 自動從 Hibernate ORM 實體中提取數據,以將其推送到本地 Apache Lucene 索引或遠程 Elasticsearch 索引。

項目地址: https://www.oschina.net/p/hibernate+search

10、MeiliSearch 輕量搜索引擎

許可證:MIT 開發語言:Rust 官網:https://www.meilisearch.com/

Meilisearch 是 Rust 實現的高性能開源搜索引擎,支持方便地集成到任何網站或應用程序,支持自託管 (self-hosting),可作爲 Algolia 和 Elasticsearch 的輕量替代方案。Meilisearch 內置了許多實用功能,比如:

Meilisearch 提供了一整套完整的 SDK 和庫,讓開發者便捷地將其連接到流行的編程語言和 Web 工具。Meilisearch 的搜索功能支持所有語言,對任何使用空格分隔單詞的語言以及中文、日語、希伯來語、泰語和韓語都進行了特殊優化。

項目地址: https://www.oschina.net/p/meilisearch

11、Manticore Search C++ 開發的高性能搜索引擎

許可證:GPL-2.0 開發語言:C/C++ 官網:https://manticoresearch.com/

Manticore Search 是一個使用 C++ 開發的高性能搜索引擎,創建於 2017 年,其前身是 Sphinx Search 。Manticore Search 充分利用了 Sphinx,顯着改進了它的功能,修復了數百個錯誤,幾乎完全重寫了代碼並保持開源!這一切使 Manticore Search 成爲一個現代,快速,輕量級和功能齊全的數據庫,具有出色的全文搜索功能。

來自 MS 官方的測試表明 Manticore Search 性能比 ElasticSearch 有很大的提升。

項目地址: https://www.oschina.net/p/manticoresearch

12、Tantivy 全文搜索引擎庫

許可證:MIT 開發語言:Ruby

Tantivy 是一個用 Rust 編寫的搜索引擎庫,其靈感來自於 Lucene。得益於 Rust 語言加持,Tantivy 性能比 Lucene 要好得多。

項目地址: https://www.oschina.net/p/tantivy

13、Tantiny Ruby 全文搜索引擎庫

許可證:MIT 開發語言:Ruby、SHELL、Rust

Tantiny 是一個基於 Tantivy 的 Ruby 的最小化全文搜索庫。當你手頭的任務需要全文搜索,但配置一個完整的分佈式搜索引擎會比任務本身花費更多的時間時,它是非常好的選擇。

即使你已經在你的項目中使用了這樣的引擎(實際上這是很有可能的),使用 Tantiny 仍然可能更容易,因爲與 Solr 和 Elasticsearch 不同,它不需要任何東西來工作(沒有單獨的服務器或進程或其他什麼),它是純粹的可嵌入的。所以,當你發現自己在使用你所選擇的搜索引擎會很麻煩 / 不方便,或者需要額外的設置時,你總是可以回到一個快速和骯髒的解決方案,但還是很靈活和快速。

Tantiny 並不完全是對 Tantivy 的 Ruby 綁定,但它試圖接近。主要理念是提供對 Tantivy 倒排索引的低級訪問,但具有漂亮的 Ruby 風格的 API、合理的默認設置和附加功能。

項目地址: https://www.oschina.net/p/tantiny

14、DataparkSearch 搜索引擎

許可證:GPL-2.0 開發語言:C/C++ 官網:http://www.dataparksearch.org/

DataparkSearch 搜索引擎是一個 C 語言的全功能的開源基於 Web 的搜索引擎。

項目地址: https://www.oschina.net/p/dataparksearch

15、GoFound 基於 Go 的全文檢索引擎

許可證:Apache-2.0 開發語言:Google Go

GoFound 是一個 go 語言全文檢索引擎, 基於平衡二叉樹 + 正排索引、倒排索引實現。可支持億級數據、毫秒級查詢。使用簡單,使用 http 接口,任何系統都可以使用。技術棧:

項目地址: https://www.oschina.net/p/gofound

16、Compass 搜索引擎

許可證:Apache-2.0 開發語言:Java、Perl 官網:http://www.compass-project.org/

Compass 是一個建立在 Lucene 之上的開源項目,旨在簡化搜索與任何 Java 應用的整合。Compass 提供了廣泛的功能,旨在集成搜索引擎功能。下圖顯示了不同的 Compass 模塊,然後是每個模塊的簡短描述。

項目地址: https://www.oschina.net/p/compass

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/vVLlirx1c6hzRqpmq2-eag