天天看點

《深入了解ElasticSearch》——第1章1.1 Apache Lucene簡介

本節書摘來自華章計算機《深入了解elasticsearch》一書中的第1章,第1.1節,作者:[美] 拉斐爾·酷奇(rafa ku) 馬雷克·羅戈任斯基(marek rogoziński)更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

elasticsearch簡介

我們希望讀者通過閱讀本書能擷取和拓展關于elasticsearch的基本知識,并假設讀者已經知道如何使用elasticsearch進行單次或批量索引建立,如何發送請求檢索感興趣的文檔,如何使用過濾器縮減檢索傳回文檔的數量,以及使用切面/聚合(faceting/aggregation)機制來計算資料的一些統計量。不過,在接觸elasticsearch提供的各種令人激動的功能之前,仍然希望讀者能對apache lucene有一個快速了解,因為elasticsearch使用開源全文檢索庫lucene進行索引和搜尋,此外,我們還希望讀者能了解elasticsearch的一些基礎概念,以及為了加快學習程序,牢記這些基礎知識,當然,這并不難掌握。同時,我們也需要確定讀者能按elasticsearch所需要的那樣正确了解lucene。本章主要涵蓋以下内容:

apache lucene是什麼。

lucene的整體架構。

文本分析過程是如何實作的。

apache lucene的查詢語言及其使用方法。

elasticsearch的基本概念。

elasticsearch内部是如何通信的。

為了全面了解elasticsearch的工作原理,尤其是索引和查詢處理環節,對apache lucene的了解顯得至關重要。揭開elasticsearch神秘的面紗,你會發現它在内部不僅使用apache lucene建立索引,同時也使用apache lucene進行搜尋。是以,在接下來的内容中,我們将展示apache lucene的基本概念,特别是針對那些從未使用過lucene的讀者們。

1.1.1 熟悉lucene

讀者也許會好奇,為什麼elasticsearch的創始人決定使用apache lucene而不是開發自己的全文檢索庫。對于這個問題,筆者并不是很确定,畢竟我們不是這個項目的創始人,但我們猜想是因為lucene的以下特點而得到了創始人的青睐:成熟、高性能、可擴充、輕量級以及強大的功能。lucene核心可以建立為獨立的java庫檔案并且不依賴第三方代碼,使用者可以使用它提供的各種所見即所得的全文檢索功能進行索引和搜尋操作。當然,lucene還有很多擴充,它們提供了各種各樣的功能,如多語言處理、拼寫檢查、高亮顯示等。如果不需要這些額外的特性,可以下載下傳單個的lucene核心庫檔案,直接在應用程式中使用。