一、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": "人民大會堂"
}'