ElasticSearch(8)---IK分詞器

在這裏插入圖片描述

上一篇:ElasticSearch(7)—倒排索引

1. 什麼是IK分詞器?

  我們在使用百度搜索引擎的時候,經常會發現有一些標紅的關鍵詞,這些被標記的關鍵詞分的還是非常精準的:
在這裏插入圖片描述
  這裏對中文進行分詞使用的就是IK分詞器技術,所謂分詞就是將一段文字劃分爲一個個的關鍵字,在搜索的時候會把搜索的文字進行分詞,對文檔中的數據也進行分詞,然後會將分詞後的關鍵字進行匹配,默認的中文分詞是將每個字作爲一個詞,比如好好學習使用中文分詞器拆分之後就是。這種分詞器顯然不夠優秀,而IK分詞器提供了兩種分詞算法:ik_smartik_max_word

要使用IK分詞器,首先需要下載GitHub所有版本下載地址,將下載好得ik分詞器放到elasticsearchplugins目錄下:
在這裏插入圖片描述

注意:IK分詞器與elasticsearch存在兼容問題,所以下載的ik分詞器需要與當前的elasticsearch版本一致

Ik分詞器7.6.2版本下載
提取碼:3bfr

將下載好得ik分詞器放到elasticsearch得plugin目錄下之後,啓動es,我們會看到es會自動加載ik分詞器:
在這裏插入圖片描述
打開kibana的開發工具:
在這裏插入圖片描述
測試兩種不同的分詞算法:

2. ik_smart 分詞算法

  ik_smart(最少切分)
在這裏插入圖片描述
在這裏插入圖片描述

3. ik_max_word 分詞算法

  ik_smart(最細粒度切分)
在這裏插入圖片描述
兩種分詞算法個人感覺ik_smart相當於就是一個最粗粒度劃分,而ik_max_word是最細粒度劃分

4. 如何自定義詞庫

ik分詞器可以支持自定義詞庫,比如我們想讓分詞器識別“明我”,就需要自定義一個詞庫:

  1. 在ik分詞器的config下面新建一個my.dic文件,文件中編輯輸入明我
  2. 修改IKAnalyzer.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
	<comment>IK Analyzer 擴展配置</comment>
	<!--用戶可以在這裏配置自己的擴展字典 -->
	<entry key="ext_dict">my.dic</entry>
	 <!--用戶可以在這裏配置自己的擴展停止詞字典-->
	<entry key="ext_stopwords"></entry>
	<!--用戶可以在這裏配置遠程擴展字典 -->
	<!-- <entry key="remote_ext_dict">words_location</entry> -->
	<!--用戶可以在這裏配置遠程擴展停止詞字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

在這裏插入圖片描述
  然後重啓elasticsearch進行測試:

未自定義詞庫前的分詞:
在這裏插入圖片描述
使用自定義詞庫之後的分詞:
在這裏插入圖片描述
可以看到分詞器將明我識別爲一個詞。說明使用自定義詞庫成功。

下一篇:ElasticSearch(9)—Rest風格
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章