ElasticSearch基础 分词器归纳
es 自带分词器_analyze 但是分词器不支持中文 如‘中文’会被默认分割成‘中’‘文’2个词
POST _analyze { "analyzer": "standard", "text": "The 2 Brown-Foxes bone."//定义的分词 空格隔开 }
因此需要安装插件ik分词器
https://github.com/medcl/elasticsearch-analysis-ik/releases
ik版本应与es一致
ik解压文件放在es的plugins目录下
再测试分词
GET _analyze { "analyzer": "ik_smart", "text":"我是中国人" //分词为 '我''是''中国人' } //上例改成 ik_max_word更细粒化分词 分词为'我''是''中国人''中国''国人'
自定义分词的方法:
ik分词文件在plugins/ik/config路径下 里面配置了一些分词规则 main.dic:ik原生内置的中文词库,总共有27万多条 quantifier.dic:放了一些单位相关的词 suffix.dic:放了一些后缀 surname.dic:中国的姓氏 stopword.dic:英文停用词 自定义分词配置文件是IKAnalyzer.cfg.xml 中如: <!--用户可以在这里配置自己的扩展字典 --> <entry key="ext_dict">xx.dic</entry> <!--用户可以在这里配置自己的扩展停止词字典--> <entry key="ext_stopwords">xxstop.dic</entry> 新建xx.dic文件中新增分词 或新建xxstop.dic文件中加上禁止的分词