去ES官方文档页面
ES默认不按照下划线分词
// 创建索引 自定义分词器
//其实底层还是使用的空格分词器,只是添加了一个过滤器,把下划线_换成了空格\u0020,扩展下,这里自然也可以把其他符号转成空格,再交给空格分词器做处理
PUT demo
{
"settings": {
"analysis": {
"char_filter": {
"_to_space": {
"type": "mapping",
"mappings": [
"_ =>\\u0020"
,". =>\\u0020"
]
}
},
"analyzer": {
"my_analyzer": {
"type": "custom",
"char_filter": [
"_to_space"
],
"tokenizer": "whitespace",
"filter": [
"lowercase"
]
}
}
}
}
}
// 查看 自定义分词是否生效
get demo/_analyze
{
"analyzer": "my_analyzer",
"text": "cicdata_ods_prod.ods_midaboss_t_abs_basic_code_relation"
}
//创建对应映射
put demo/_doc/_mapping
{
"properties": {
"words": {
"type": "text" // integer long data
},
"title": {
"type": "text",
"analyzer": "my_analyzer" // 自定义索引
}
}
}
// 新增数据
put demo/_doc/1
{
"title":"cicdata_ods_prod.ods_whgvmbpm_ads_resource_used_repair"
}
// 多字段搜索
GET demo/_search
{
"query": {
"multi_match": {
"query": "midaboss_t_abs",
"fields": ["title"],
"fuzziness":2
}
}
}
// 搜索 fuzziness 模糊
GET demo/_search
{
"query": {
"match": {
"title": {
"query": "midaboss_t_abs"
,
"fuzziness":2
}
}
}
}
java 方法 ES 6.3.2
文章来源:https://uudwc.com/A/nJO40
文章来源地址https://uudwc.com/A/nJO40