首先,也是最重要的一點,你得有 IKAnalyzer 這個jar包
https://pan.baidu.com/s/1bw_pxleG5SCghMSRKNL97A 提取碼:ywtg
獲得以下檔案:

建構項目(普通項目或maven,我這裡使用了maven項目)
0.導入lucene依賴
<!-- 添加 lucene 支援 -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>7.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>7.4.0</version>
</dependency>
1.把 jar 包放在項目檔案夾下,其他三個檔案要放在項目的 classpath 路徑下(普通項目直接放在 src 下就可以,maven放在 resources 下)
三個檔案的含義:
hotword.dic: 擴充詞典,可以自行添加關鍵詞
stopword.dic:擴充停止詞典,可以自行添加停用詞(敏感詞、無意義的詞)
IKAnalyzer.cfg.xml:配置讀取擴充檔案的路徑
這三個檔案可以不導入,但要使用擴充功能就需要自己配置,還是要加進來的
2.把 jar 導入項目中,之前隻是放在了項目檔案下。因為使用到了 jar 包裡面的類,是以我已經書寫好的代碼會報錯
右擊 jar 包,導入
3.編寫代碼
/**
* 中文分析器 IKAnalyzer
* 檢視分析器的分析效果
*/
@Test
public void testIKAnalyzer() throws Exception{
//1.建立一個 Analyzer對象,IKAnalyzer 對象
Analyzer analyzer = new IKAnalyzer();
//2.使用分析器對象的 tokenStream 方法獲得一個 TokenStream 對象
TokenStream tokenStream = analyzer.tokenStream("","1\t什麼是全文檢索java 魔獸世界 警察 \n" +
"1.1\t全文檢索概念全文檢索是将整本書java、整篇文章中的任意内容資訊查找出來的檢索,java。它可以根據需要獲得全文中有關章、節、段、句、詞等資訊,計算機程式通過掃描文章中的每一個詞,對每一個詞建立一個索引,指明該詞在文章中出現的次數和位置,當使用者查詢時根據建立的索引查找,類似于通過字典的檢索字表查字的過程。 ");
//3.向 TokenStream 對象中設定一個引用,相當于是一個指針
CharTermAttribute charTermAttribute = tokenStream.addAttribute(CharTermAttribute.class);
//4.調用 TokenStream 對象的 reset方法,如果不調用會抛異常
tokenStream.reset();
//5.使用 while 循環周遊 TokenStream 對象
while(tokenStream.incrementToken()){
System.out.println(charTermAttribute.toString());
}
//6.關閉 TokenStream 對象
tokenStream.close();
}
得到結果(一部分):
加載擴充詞典:hotword.dic
加載擴充停止詞典:stopword.dic
1
什麼
全文
檢索
java
魔獸
世界
警察
1.1
結果顯示,程式先加載擴充檔案或在輸出,分詞詞結果,如果不導入,也是沒有問題的,但是就沒法自行添加一些關鍵詞了。
比如:魔獸世界,我們知道是一款遊戲,可以作為一個關鍵詞;警察我們可以作為一個敏感詞,停用
這時候我們隻需在,hotword.dic 和 stopword.dic 中添加這兩個詞,就可以讓 IKAnalyzer 分析出我們想要的關鍵詞了
hotword.dic 檔案
stopword.dic 檔案
再次運作,結果:
加載擴充詞典:hotword.dic
加載擴充停止詞典:stopword.dic
1
什麼
全文
檢索
java
魔獸世界
魔獸
世界
1.1
完成