Elasticsearch中,内置了很多分词器(analyzers),例如standard
(标准分词器)、english
(英文分词)和chinese
(中文分词)。其中standard
就是无脑的一个一个词(汉字)切分,所以适用范围广,但是精准度低;english
对英文更加智能,可以识别单数负数,大小写,过滤stopwords(例如“the”这个词)等;chinese
效果很差。这次主要玩这几个内容:安装中文分词ik,对比不同分词器的效果,得出一个较佳的配置。
IK分析插件将Lucene IK分析器(http://code.google.com/p/ik-analyzer/)集成到elasticsearch中,支持自定义字典。
分析:ik_smart
,ik_max_word
,分词:ik_smart
,ik_max_word
分词器对比:
POST http://192.168.159.159:9200/index1/_analyze?analyzer=ik_max_word
联想召回笔记本电源线
ik测试结果:
{
"tokens": [
{
"token": "联想",
"start_offset": 0,
"end_offset": 2,
"type": "CN_WORD",
"position": 1
},
{
"token": "召回",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 2
},
{
"token": "笔记本",
"start_offset": 4,
"end_offset": 7,
"type": "CN_WORD",
"position": 3
},
{
"token": "电源线",
"start_offset": 7,
"end_offset": 10,
"type": "CN_WORD",
"position": 4
}
]
}
自带chinese和standard分词器的结果:
{
"tokens": [
{
&