lucene與ElasticSearch

目錄

Lucene

ElasticSearch

Lucene   vs   Elasticsearch


Lucene

Lucene 是一個基於 Java 的全文信息檢索工具包,它不是一個完整的搜索應用程序,而是爲你的應用程序提供索引和搜索功能。

如圖是應用程序與lucene之間的關係

                                                在這裏插入圖片描述

使用過程大概如下:

  • 索引流程:即採集數據–>構建文檔對象–>分析文檔(分詞)–>創建索引。
  • 搜索流程:即用戶通過搜索界面–>創建查詢–>執行搜索,搜索器從索引庫搜索–>渲染搜索結果。

ElasticSearch

Elasticsearch是一個基於Apache Lucene™的開源搜索引擎。

Lucene只是一個庫。想要使用它,你必須使用Java來作爲開發語言並將其直接集成到你的應用中,更糟糕的是,Lucene非常複雜,你需要深入瞭解檢索的相關知識來理解它是如何工作的。
Elasticsearch也使用Java開發並使用Lucene作爲其核心來實現所有索引和搜索的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的複雜性,從而讓全文搜索變得簡單。


Lucene   vs   Elasticsearch

  • Lucene是一個java信息檢索程序庫。您可以將其包含在項目中,並使用函數調用來參考其功能。

Lucene 是apache軟件基金會一個開放源代碼的全文檢索引擎工具包,是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎。Lucene的目的是爲軟件開發人員提供一個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能,或者是以此爲基礎建立起完整的全文檢索引擎(搜索引擎和檢索程序庫不完全等同)。

  • Elasticsearch是基於JSON的,分佈式的,基於Lucene的Web服務。

Lucene是一套信息檢索工具包,並不包含搜索引擎系統,它包含了索引結構、讀寫索引工具、相關性工具、排序等功能,因此在使用Lucene時仍需要關注搜索引擎系統,例如數據獲取、解析、分詞等方面的東西。而elasticsearch都是基於該工具包做的一些封裝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章