Elasticsearch 可用來進行全文查詢 (全文檢索),常聽到的 ELK 是指 Elasticsearch, Logstash, Kibana 的縮寫。
簡介
產品 | 描述 |
---|---|
Elasticsearch |
分散式 JSON 搜尋與分析引擎 |
Logstash |
連結與轉換資料 |
Kibana |
資料視覺化與管理工具 |
另一個較早出現的是 SQL Server 全文查詢功能。
Elasticsearch 和 SQL Server 全文查詢都用 Invert Index 作為索引,比起使用 SQL Server 直接用 LIKE %Keyword%
做為查詢條件更加快速和有彈性。
和 SQL Server 全文查詢的差異
- SQL Server 本身包含 LIKE 語法和全文查詢功能。
- SQL Server 全文查詢能自行控制的部分較少。
- SQL Server 不容易擴大運行規模,只能在該台主機上加強硬體配備,以達成結果。
Elasticsearch 需要更多維護的成本,但提供更多功能與控制權,如分詞的方式、提供查詢 API 與介面 (含多種查詢方式和選項)、多語系的支援、提供解釋的指令、容易調整同義字和辭庫、整合機器學習,以及地理查詢等等,且分散式系統易於擴充規模和備援。
- c# - ElasticSearch vs SQL Full Text Search - Stack Overflow
- Full-text search with MySQL and Elasticsearch - by Azraar Azward - Medium
- 這篇文章有提到一部份傳統資料庫的優點:Elasticsearch vs. Traditional Databases: Diving into Elastic search’s Strengths - by Rajeev Kumar - Medium
- Bonus: MySQL 和 Elasticsearch 的討論:MySQL Full Text Search versus Elasticsearch : r/devops
衍生的 OpenSearch
Elasticsearch 還有從 Amazon 分支出來的 OpenSearch,特色為開源授權。(不過 Elasticsearch 也在近日重新轉為開源授權)
MeiliSearch 全文檢索引擎
MeiliSearch 是另一個簡單、輕量化的替代方案。
在中文匹配方面,有無法分辨同音字的嚴重問題,推測是只有使用拼音查詢資料,到目前還沒有解決,因此不適合套用在產品。
- [推薦] 輕量級全文檢索搜尋引擎 Meilisearch - 辛比誌
- There seems to be a problem with matching Chinese · Issue #4075 · meilisearch/meilisearch · GitHub
- Chinese Pinyin search is not accurate in few Chinese character · Issue #3655 · meilisearch/meilisearch · GitHub