分詞 analyzers
分詞比較好理解,我們可以理解爲把一個句子分成一個可能的詞組成的數組。
比如:“爲了保證用戶不受到騷擾” 這個句子可能組成的數組爲["爲了","保證","用戶","不受","到","騷擾"],這樣的操作就是分詞。
市場上已有現成的分詞工具類,不用我們去寫這個算法。
索引 index
Lucene 中最重要的對象,搜索就是基於它來操作的。
Lucene 的索引主要就是把我們需要搜索的內容進行分詞,然後根據這些分詞來建立索引文件。
Lucene 的索引就像我們mysql數據庫中的一個數據對象一樣。
Lucene 創建索引的步驟:
- 指定一個存放索引的目錄
- 創建一個索引寫入類,用於寫入索引和數據對象到索引目錄中
- 創建存放數據的類型,指定是否需要存儲、是否分詞、是否建立索引等
- 創建存放數據的文檔,把數據按照類型存放進去
- 把文檔添加到到索引中
- 保存索引和數據到索引目錄
文檔 document
文檔表示我們的一條條的數據對象,主要負責存儲數據。
索引最終也是指向這些文檔的,因爲我們最終目標就是找到這些數據。
搜索 search
搜索就是根據指定的語法去 Lucene 的索引中搜索數據的一個過程。
Lucene 搜索的步驟:
- 獲取搜索的關鍵字
- 根據傳入的字段和關鍵字進行組裝搜索語法
- 根據搜索語法到索引中查詢得到索引指向的文檔編號
- 根據文檔編號的信息查詢出文檔數據對象