Lucene、solr以及elasticsearch之間的區別和聯繫 lucene,就是一個jar包,裡面包含了封裝好的各種建立倒排索引、以及進行搜索的代碼,包括各種演算法。我們就用java開發的時候,引入lucene jar,然後基於lucene的api去進行開發就可以了。solr和elastics ...
Lucene、solr以及elasticsearch之間的區別和聯繫
- lucene,就是一個jar包,裡面包含了封裝好的各種建立倒排索引、以及進行搜索的代碼,包括各種演算法。我們就用java開發的時候,引入lucene jar,然後基於lucene的api去進行開發就可以了。solr和elasticsearch都是基於lucene做的一些封裝
- Solr是一個有HTTP介面的基於Lucene的查詢伺服器,封裝了很多Lucene細節,自己的應用可以直接利用諸如【 .../solr?q=abc】這樣的HTTP (GET/POST)請求去查詢,維護修改索引。
- Elasticsearch是一個分散式搜索引擎,採用倒排索引將每一個欄位都編入索引,使其可以被搜索
- solr以及elasticsearch之間的區別:
- solr利用zookpper進行分散式管理,而elasticsearch自身帶有分散式協調管理功能
- solr比elasticsearch提供的功能多,elasticsearch更註 重於核心功能,高級功能則由第三方插件提供
- elasticsearch在實時搜索方面比solr表現好
什麼是全文檢索、倒排索引
- 全文檢索:以中文文章中的每一個詞作為key,該詞出現在文章中的(次數和位置)作為value建立索引(這種索引也叫倒排索引),這種以倒排索引檢索數據的方式就叫全文檢索;
倒排索引原理:
ES檢索數據原理: