查看指定分词器的分词结果
GET _analyze
{
"text": "我爱北京",
"analyzer": "standard" // 默认分词器
}
自定义分词器
创建索引自定义分词器
PUT custom_analysis
{
"settings": {
"analysis": {
"char_filter": {
// 自定义字符映射
"my_char_filter":{
"type":"mapping",
"mappings":[
"& => and",
"| => or"
]
},
// 自定义html 标签保留
"html_strip_filter":{
"type":"html_strip",
"escaped_tags":["a"]
}
},
"filter": {
// 自定义停用词
"my_stopword":{
"type":"stop",
"stopwords":[
"is",
"in",
"for"
]
}
},
"tokenizer": {
// 自定义文本分词器
"my_tokenizer":{
"type":"pattern",
"pattern":"[ ,.?!]"
}
},
"analyzer": {
"my_analyzer":{
"type":"custom",
"char_filter":["my_char_filter","html_strip_filter"],
"filter":["my_stopword"],
"tokenizer":"my_tokenizer"
}
}
}
}
}
分词器测试
GET custom_analysis/_analyze
{
"analyzer": "my_analyzer",
"text": "what is as <a> the char filter & stopword |</a> happare in,add?asa,"
}
中文分词器
下载地址:https://github.com/infinilabs/analysis-ik/releases/tag/v7.15.2
安装:将压缩包 解压到D:\fenbushi\elasticsearch-7.15.2-windows-x86_64\elasticsearch-7.15.2\plugins下面并改为ik后重启就好了。
IK文件描述:
IKAnalyzer.cfg.xml :IK分词器配置文件
主词库:main.dic
英文停用词:stopword.dic,不会建立倒排索引
特殊词库:
quantifier.dic 计量单位
suffix.dic 后缀名
surname.dic 百家姓
preposition.dic 语气词
添加自定义分词:将自己定义的分词文件添加到IKAnalyzer.cfg.xml文件中 即可
热更新
ik访问远程文件
可以通过修改IKAnalyzer.cfg.xml中的words_location可以对分词器 进行热更新,words_location是一个远程api地址返回分词的文件。
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
ik访问数据库
下载源码(sorcecode.zip)地址:https://github.com/infinilabs/analysis-ik/releases/tag/v7.15.2
下载完后在Dictionary.java文件中的loadMainDict方法中添加一个从数据库获取分词的方法就行。