我的目标是能够搜索带有括号的单词,例如:
(安迪)
据我所知,如果我执行映射字符过滤器并将括号更改为下划线,这将完成我所追求的目标。
"index" : {
"analysis" : {
"char_filter" : {
"my_mapping" : {
"type" : "mapping",
"mappings" : ["( => _", ") => _"]
}
},
"analyzer" : {
"custom_with_char_filter" : {
"tokenizer" : "standard",
"char_filter" : ["my_mapping"]
},
}
}
}
}';
当我运行上面的代码时,出现以下错误:
{"error":"ElasticSearchParseException[无法解析创建索引的源];嵌套:JsonParseException[意外字符('}'(代码 125)):需要有效的名称字符(对于不带引号的名称)或双- quote(用于引用)在 [来源:[B@70de7f1b;行:15,列:14]] 处开始字段名称\n;","status":400}
最佳答案
仔细重读错误消息。它包含您解决此问题所需的所有信息。基本上,第 14 行有一个额外的逗号,因此解析器希望它后面跟一个名称,而不是在第 15 行第 14 列上得到“}”。
关于mapping - ElasticSearch 映射 Charfilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16002588/