一、Elasticsearch的分析器(analyzer)包括三部分:
1、字元過濾器:他們的任務是在分詞前整理字元串。一個字元過濾器可以用來去掉HTML,或者将
&
轉化成 `and`等。
2、分詞器:簡單的分詞器遇到空格或标點的時候講文本拆分為詞條(Token)。
3、Token過濾器:改變詞條(eg: Quick --> quick);删除詞(eg: a ,the ,and); 增加同義詞(eg: jump == leap)
------------以上是elasticsearch權威指南中内容,适用用于西文字元-------------
二、适用于中文分詞的,目前網上看到最多的是IKAnalyzer。
IKAnalyzer分詞器采用的是“正向疊代最細粒度切分算法”。有兩種可選模式 :細粒度(ik_max_word)和最大詞長(ik_smart)。以“人民大會堂”為例:
采用ik_max_word模式的分詞結果為:人民大會堂、人民大會、人民、大會、大會堂、大會、堂。
采用ik_smart模式的分詞結果為:人民大會堂。
elasticsearch查詢語句為:
curl -XGET '10x.200.x65.x27:9201/_analyze?pretty' -H 'Content-Type: application/json' -d'
{
"analyzer": "ik_max_word",
"text": "人民大會堂"
}'
curl -XGET '10x.200.x65.x27:9201/_analyze?pretty' -H 'Content-Type: application/json' -d'
{
"analyzer": "ik_smart",
"text": "人民大會堂"
}'