天天看點

elasticsearch 分析器

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

繼續閱讀