analyzer单词的中文译为“分析”,应用到搜索引擎就是对文字的断章取义,段的好可以说算法好,分词效果好,索引查询效率高,就es引擎来说,默认的分词器,只是简单的将文字单独分开作为索引匹配,效率低,应用较好的分词插件对于ES服务来说较有必要。
本人的分词器选择的是ik,感兴趣的可以尝试使用mmseg等其他热门分词器。
下面我简单举个例子作对比
- 默认
curl -XPOST
“http://localhost:9200/my-clothes/_analyze?analyzer=standard&pretty=true&text=恭喜恒大豪取中超六连冠!”
如果你是windows环境,尚未安装curl工具,可以使用Fiddler实现上述请求,如下
结果:
- ik
curl -XPOST
“http://localhost:9200/my-clothes/_analyze?analyzer=ik_smart&pretty=true&text=恭喜恒大豪取中超六连冠!”
结果:
从结果看是不是分词更合理一些,间接导致查询效率更高。smart即聪明的意思,在es的配置文件elasticsearch.yml里可以自定义分词字典,如学习记录1里所配置的,此处analyzer还可以使用ik和ik_max_word,后者顾名思义就是更细化的分析语句。