ElasticSearch:分詞

es內置分詞器
  • standard:默認分詞,單詞會被拆分,大小會轉換爲小寫。

  • simple:按照非字母分詞。大寫轉爲小寫。

  • whitespace:按照空格分詞。忽略大小寫。

  • stop:去除無意義單詞,比如the/a/an/is…

  • keyword:不做分詞。把整個文本作爲一個單獨的關鍵詞。

restful風格使用

POST /_analyze
{
    "analyzer": "standard",   // 分詞器
    "text": "text文本"     // 需要分詞的文本
}
中文分詞

內置分詞器只支持英文,中文分詞需要用第三方插件,這裏推薦elasticsearch-analysis-ik,支持ik_max_wordik_smart兩種分詞方式。

  • ik_max_word: 會將文本做最細粒度的拆分,比如會將“中華人民共和國國歌”拆分爲“中華人民共和國,中華人民,中華,華人,人民共和國,人民,人,民,共和國,共和,和,國國,國歌”,會窮盡各種可能的組合,適合 Term Query;

  • ik_smart: 會做最粗粒度的拆分,比如會將“中華人民共和國國歌”拆分爲“中華人民共和國,國歌”,適合 Phrase 查詢。

擴展詞庫與停用詞庫

配置 {conf}/analysis-ik/config/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">custom/mydict.dic;custom/single_word_low_freq.dic</entry>
	 <!--用戶可以在這裏配置自己的擴展停止詞字典-->
	<entry key="ext_stopwords">custom/ext_stopword.dic</entry>
 	<!--用戶可以在這裏配置遠程擴展字典 -->
	<entry key="remote_ext_dict">location</entry>
 	<!--用戶可以在這裏配置遠程擴展停止詞字典-->
	<entry key="remote_ext_stopwords">http://xxx.com/xxx.dic</entry>
</properties>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章