
Standard Analyzer
标准分析仪按照Unicode文本分段算法的定义,将文本分割成单词边界的分词。它删除了大多数标点符号,小写显示分词,并支持删除stop words。
Simple Analyzer
当遇到不是字母的字符时,简单的分析器会将文本分成条目。小写显示分词。
Whitespace Analyzer
空格分析器遇到任何空格字符时都会将文本分为多个项目。不会把分词转换为小写字母。
Stop Analyzer
停止分析仪和Simple Analyzer类似,但也支持stop words的删除。
Keyword Analyzer
一个“noop”分析器,它可以接受任何给定的文本,并输出完全相同的文本作为一个单词。
Pattern Analyzer
使用正则表达式拆分分词,支持lower-casing和stop words。
Language Analyzers
Elasticsearch提供许多语言特定的分析器,如英语或法语。
Fingerprint Analyzer
一个专门的分析仪,它可以创建一个可用于重复检测的指纹。
https://www.jianshu.com/p/13112fe5eaad
对中文文本以英文逗号作为分隔符分词:
将分析器设置到索引上
获取分词结果
https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-stop-analyzer.html
es 节点层面的默认分词设置已经废弃,不支持了。就是说在 elasticsearch.yml 配置诸如:
无效,会导致es启动失败:
推荐在索引层面动态设置。
https://blog.csdn.net/yu280265067/article/details/71107658
ES作为最强大的全文检索工具(没有之一),中英文分词几乎是必备功能,下面简单说明下分词器安装步骤(详细步骤网上很多,本文只提供整体思路和步骤):
IK中文分词器: https://github.com/medcl/elasticsearch-analysis-ik
拼音分词器: https://github.com/medcl/elasticsearch-analysis-pinyin
(竟然都是同一个作者的杰作,还有mmseg和简繁转换的类库,依然默默 watch)
** settings配置 **
** mapping 配置 **
通过_analyze测试下分词器是否能正常运行:
向index中put中文数据:
中文分词测试(通过查询字符串)
curl http://localhost:9200/my_index/index_type/_search?q=name :刘
curl http://localhost:9200/my_index/index_type/_search?q=name :刘德
拼音测试 (通过查询字符串)
curl http://localhost:9200/my_index/index_type/_search?q=name.pinyin:liu
curl http://localhost:9200/my_index/index_type/_search?q=name.pinyin:ldh
curl http://localhost:9200/my_index/index_type/_search?q=name.pinyin:de+hua
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)