關系型數據庫MySql-模糊搜索優化(like %abc%):全文搜索引擎技術選型


1.阿里雲OpenSearch

阿里雲開放搜索OpenSearch是一款阿里巴巴自主研發的大規模分布式搜索引擎平台,該平台承載了淘寶、天貓、1688、神馬搜索、口碑、菜鳥等搜索業務,通過OpenSearch雲服務的方式,將阿里巴巴成熟的搜索技術共享給廣大開發者。

https://help.aliyun.com/document_detail/29119.html

 

2.Lucene

Lucene 是一個 JAVA 搜索類庫,它本身並不是一個完整的解決方案,需要額外的開發工作。

優點:成熟的解決方案,有很多的成功案例。apache 頂級項目,正在持續快速的進步。龐大而活躍的開發社區,大量的開發人員。它只是一個類庫,有足夠的定制和優化空間:經過簡單定制,就可以滿足絕大部分常見的需求;經過優化,可以支持 10億+ 量級的搜索。

缺點:需要額外的開發工作。所有的擴展,分布式,可靠性等都需要自己實現;非實時,從建索引到可以搜索中間有一個時間延遲,而當前的“近實時”(Lucene Near Real Time search)搜索方案的可擴展性有待進一步完善

 

3.IndexTank

基於 Lucene 的一系列解決方案,包括 准實時搜索 zoie ,facet 搜索實現 bobo ,機器學習算法 decomposer ,摘要存儲庫 krati ,數據庫模式包裝 sensei 等等

優點:經過驗證的解決方案,支持分布式,可擴展,豐富的功能實現

缺點:與 linkedin 公司的聯系太緊密,可定制性比較差

https://github.com/linkedin 

https://www.oschina.net/news/24262/linkedin-indextank

 

3.Solr

優點:

  1. Solr有一個更大、更成熟的用戶、開發和貢獻者社區。

  2. 支持添加多種格式的索引,如:HTML、PDF、微軟 Office 系列軟件格式以及 JSON、XML、CSV 等純文本格式。

  3. Solr比較成熟、穩定。

  4. 不考慮建索引的同時進行搜索,速度更快。

缺點:

  1. 建立索引時,搜索效率下降,實時索引搜索效率不高。

 

4.Elasticsearch

優點:

  1. Elasticsearch是分布式的。不需要其他組件,分發是實時的,被叫做”Push replication”。

  2. Elasticsearch 完全支持 Apache Lucene 的接近實時的搜索。

  3. 處理多租戶(multitenancy)不需要特殊配置,而Solr則需要更多的高級設置。

  4. Elasticsearch 采用 Gateway 的概念,使得完備份更加簡單。

  5. 各節點組成對等的網絡結構,某些節點出現故障時會自動分配其他節點代替其進行工作。

缺點:

  1. 只有一名開發者(當前Elasticsearch GitHub組織已經不只如此,已經有了相當活躍的維護者)

  2. 還不夠自動(不適合當前新的Index Warmup API)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM