聊聊 elasticsearch 之分词器配置 (IK+pinyin)
系统:windows 10
elasticsearch版本:5.6.9
es分词的选择
- 使用es是考虑服务的性能调优,经过读写分离的方式下降频繁访问数据库的压力,至于分词的选择考虑主要是根据目前比较流行的分词模式,根据参考文档本身搭建测试。
es配置目录结构
- 在此先贴出es下plugins的目录结构,避免安装时一脸茫然(出自本人配置目录,可根据自身须要进行调整):
- es插件目录结构:
- ik压缩包内文件列表:
- pinyin压缩包内文件目录:
IK 分词器
pinyin分词器
分词器的测试案例
- IK分词,主要强调两种分词模式:ik_smart和ik_max_word
- ik_smart是将文本作了正确的拆分,以下图:

- 看到结果发现ik_smart分词模式拆分的不够细,“阳光明媚”并无拆分开,因此接下来就该另外一种分词出场了 ---- ik_max_word,直接上结果,以下图:

- 这种更加详细的拆分才是我想要的,这回不用担忧高级搜索了····
- 拼音分词,简言之就是将文本拆分红更加详细拼音,图解以下:
- ik与pinyin的结合使用(注:当使用分词搜索数据的时候,必须是经过分词器分析的数据才能搜索出来,不然没法搜索出数据)
- 建立索引时能够自定义分词器配置,经过映射能够指定自定义的分词器,配置以下图:
- 建立名称为“greatom”的索引,自定义“ik_smart_pinyin”和“ik_max_word_pinyin”的分词器,过滤设置为“g_pinyin”,如上图右侧提示则表示设置成功,能够经过“GET greatom/settings”查询配置信息。
- 建立type时,须要在字段的解析属性(analyzer)中设置自定义名称的映射,以下图:
- 如上图右侧提示则表示建立成功,接下来增长点数据,以便后续测试。
- 测试数据按照上图方式便可进行批量新增,也可对索引数据进行查询。接下来就开始正式的分词查询。
- 上图表示两种分词的查询格式,能够联想搜索出相关的全部数据,感受比较智能了。
结尾
- 经过对es分词的了解和使用,发现选择的两种分词模式已经知足本身项目的使用,还未进行更深刻的了解,后续会继续了解底层及分词原理,若有瑕疵或更好的看法,但愿能够交流学习。
欢迎关注本站公众号,获取更多信息