我在elasticsearch v5.2.2中有一些文档如下所示:
{
"query": {
"wildcard" : { "bloomberg" : "*b34*" }
}
}
我想查找包含可能包含特殊字符的子字符串的所有文档(在我的情况下为':')。
{
"query": {
"wildcard" : { "bloomberg" : "*b34:*" }
}
}
返回一个结果(如预期的那样)。
undefined method ` =' for #<Agency id: nil, name: nil, ip_adress: nil>
返回none。我尝试过query_string和其他各种各样的东西,但似乎没什么用。
答案 0 :(得分:1)
问题是我使用的映射只是开箱即用的映射。将bloomberg过滤器的分析器更改为“空白”为我修复了这个问题。
{
"mappings": {
"external" : {
"properties" : {
"name" : {
"type" : "string",
"analyzer": "standard",
"search_analyzer": "standard"
},
"bloomberg" : {
"type" : "string",
"analyzer": "whitespace",
"search_analyzer": "whitespace"
}
}
}
}
}