1. 程式人生 > 其它 >Lucene、solr以及elasticsearch之間的區別和聯絡

Lucene、solr以及elasticsearch之間的區別和聯絡

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檢索資料原理: