lucene學習二 lucene分詞器

2021-07-13 22:37:59 字數 1302 閱讀 5947

分詞器的作用: 在建立索引時會用到分詞器,在使用字串搜尋時也會用到分詞器,這兩個地方要使用同乙個分詞器,否則可能會搜尋不出結果。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 的呼叫實現索引和搜尋過程。...