Lucene的快速入門

一.執行流程

0.圖解

圖片

圖片

1.創建索引

(1)獲取原始文檔

基於那些文檔進行搜索,那就是原始文檔。

通過爬蟲可以獲取原始文檔。

(2)構建文檔對象

對應每一個原始文檔,並創建一個document對象。

一個document對象可以有多個域(field)。

域中保存的就是原始文檔的屬性。

其中屬性包含域的名稱和域的值。

每個文檔都有唯一的編號,就是文檔id。

(3)分析文檔

就是分詞的過程。

1.將根據空格將字符串進行分隔,得到一個單詞列表。

2.把單詞統一變成小寫。

3.去除標點符號。

4.去除停用詞。停用詞指的是無意義的詞。

5.每個關鍵詞封裝成一個Term對象。Term對象包含一個關鍵詞所在的域,一個關鍵詞本身。

注意:不同的域拆分出相同的關鍵詞是不同的Term對象。

(4)創建索引

基於關鍵詞列表來創建一個索引。保存到索引庫中。

索引庫內含:

  • 索引
  • document對象
  • 關鍵詞和文檔的對應關係

通過詞語找文檔,這種索引結果稱之爲倒排索引結構。

2.查詢索引

(1)用戶查詢接口

用戶輸入查詢條件的地方。

(2)把關鍵詞封裝成一個查詢對象

需要包含倆個條件

條件一:查詢的域

條件二:查詢的關鍵詞

(3)執行查詢

根據要查詢的關鍵詞到對應的域上進行搜索。

找到關鍵詞,根據關鍵詞找到對應的文檔。

(4)渲染結果

根據文檔的id找到文檔對象。

根據關鍵詞進行高亮顯示,分頁處理等。

二.入門程序

1.創建索引

(1)環境

下載Lucene

https://lucene.apache.org/

安裝lucene的jdk版本不低於1.8。

鏈接:https://pan.baidu.com/s/1QhoQO1Zjl57lKX1KsfXzjQ

提取碼:aq4r

圖片

(2)工程搭建

  1. 創建一個java工程
  2. 添加jar包

lucene-analyzers-common-7.4.0.jar

lucene-core-7.4.0.jar

commons-io.jar

(3)步驟

1.創建一個Director對象,指定索引庫的位置。F:\temp

2.基於Director對象創建一個IndexWriter對象。

3.讀取磁盤上的原始文件,對應每個文件創建一個文檔對象。

4.向文檔對象添加域。

5.把文檔對象寫到索引庫。

6.關閉indexwriter對象。

(4)範例

第一步導入依賴

圖片

第二步LuceneFirst類

圖片

圖片

圖片

2.使用Luke查詢索引庫,要求jdk版本1.9

(1)使用說明

圖片

(2)索引庫信息頁

圖片

(3)文件信息頁

圖片

(4)域的信息頁

圖片

(5)搜索信息頁

圖片

3.查詢索引庫

(1)步驟

1.創建一個Director對象,指定索引庫的位置。

2.創建一個IndexReader對象。

3.創建一個IndexSearcher對象,構造方法參數中的參數IndexReader對象。

4.創建一個Query對象。TeamQuery。

5.執行查詢,得到一個TopDocs對象。

6.取出查詢結果的總記錄數。

7.取文檔列表。

8.打印文檔中的內容。

9.關閉IndexReader對象。

(2)範例

圖片

三.源碼

lucene.rar

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