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