分詞器的作用: 在建立索引時會用到分詞器,在使用字串搜尋時也會用到分詞器,這兩個地方要使用同乙個分詞器,否則可能會搜尋不出結果。analyzer(分詞器)的作用是把一段文字中的詞按規則取出所包含的所有詞。對應的是analyzer類,這是乙個抽象類,切分詞的具體規則是由子類實現的,所以對於不同的語言(規則),要用不同的分詞器在全文。本文介紹幾種常見的分詞器,目前運用最多的是庖丁解牛,當然還有許多第三方的分詞器,不同的分詞器分的詞是不一樣的。
1:分詞器測試工具類
public static void testanalzyer(analyzer analyzer,string text) throws ioexception
public static void main(string args) throws exception
2:不同的分詞器
analyzer analyzer=new standardanalyzer(version.lucene_44);//單字分詞器
結果:
//二分法分詞...
analyzer analyzer=new cjkanalyzer(version.lucene_44);
結果:
可以發現庖丁會幫你自動的分詞,它有一套分詞規則,如果仍然對這個分詞結果不滿意還可以優化,就是切分關鍵字和停用字,這個可以建立乙個配置檔案,再新增2個字典檔案分別是關鍵字和停用字,這三個檔案必須與**同在src目錄下
lucene001\src\ikanalyzer.cfg.xml
<?xml version="1.0" encoding="utf-8"?>
ik analyzer 擴充套件配置
mydict.dic;
ext_stopword.dic
lucene001\src\ext_stopword.dic//停用的單字寫上去,寫完乙個換行,這裡我們想去掉一,上,的,包字一上
的包lucene001\src\mydict.dic//關鍵字寫完乙個換行,高大上是個關鍵字,在檔案上加上
高大上。。。(以後其他的額可以擴充套件)
加上這三個檔案最後執行結果:
Lucene學習二 Lucene總體框架
lucene總的來說是 在lucene in action中,lucene 的構架和過程如下圖,說明lucene是有索引和搜尋的兩個過程,包含索引建立,索引,搜尋三個要點。讓我們更細一些看lucene的各元件 那麼如何應用這些元件呢?讓我們再詳細到對lucene api 的呼叫實現索引和搜尋過程。搜...
Lucene學習總結之二 Lucene的總體架構
lucene總的來說是 在lucene in action中,lucene 的構架和過程如下圖,說明lucene是有索引和搜尋的兩個過程,包含索引建立,索引,搜尋三個要點。讓我們更細一些看lucene的各元件 那麼如何應用這些元件呢?讓我們再詳細到對lucene api 的呼叫實現索引和搜尋過程。搜...
Lucene學習總結之二 Lucene的總體架構
lucene總的來說是 在lucene in action中,lucene 的構架和過程如下圖,說明lucene 是有索引和搜尋的兩個過程,包含索引建立,索引,搜尋三個要點。讓我們更細一些看lucene的各元件 那麼如何應用這些元件呢?讓我們再詳細到對lucene api 的呼叫實現索引和搜尋過程。...