SpringBoot整合ElasticSearch自定义分词器Analyzer
SpringBoot自定义ElasticSearch分词器
·
Es内置的分词器有 standard、pattern、whitespace、stop等等;也可以下载ik插件,使用ik_smart 和 ik_max_word。网上也有很多相关文章,这里就不介绍了。
我总结了一下 SpringBoot 自定义 正则分词器 的方法,其他的类似。
1. 首先创建一个 setting.json 文件,放到 resources 目录下,用于自定义分词器。
配置文件名随意,我这里命名为settings.json,作用是将 url 中的 . 替换成 -
{
"analysis": {
"analyzer": {
"url_analyzer": {
"tokenizer": "standard",
"char_filter": [
"url_char_filter"
]
}
},
"char_filter": {
"url_char_filter": {
"type": "pattern_replace",
"pattern": "\\.",
"replacement": "-"
}
}
}
}
2. 在实体类上加 @Setting 注解,填写settings.json的路径(由于我直接放到了resource目录下,所以路径直接填settings.json)
3. 在对应的字段上,添加注解 @Field 就OK了(也可以手动配置mapping文件,我这里用注解的方式)
4. 看一下效果
使用standard分词器,url没有被分词
使用自定义的正则分词器,可以看到url已经被分词
更多推荐
已为社区贡献2条内容
所有评论(0)