Elastic搜索查询中多列上的通配符

时间:2018-10-03 08:27:58

标签: amazon-web-services elasticsearch elasticsearch-5 aws-elasticsearch

我需要在弹性搜索中匹配用户在2个属性中传递的输入,并且它必须是通配符搜索。

我正在使用AWS-ES 6.4版

当我查询一个属性时,结果还可以,但是当我同时包含这两个属性时,它会给我400状态代码。

有效查询:

 {"query": 
{"bool": {"should": [  
{"wildcard": { "phone1.searchTerm": "*1234*" }} 
]}}
}

查询失败:(phone1和phone2都) 在应/必须条件中是否只有一个通配符有约束力?

{"query": 
{"bool": {"should": [  
{"wildcard": { "phone1.searchTerm": "*1234*" }}    ,
{"wildcard": { "phone2.searchTerm": "*1234*" }}    ]}}
}

这与弹性搜索版本有关吗?

1 个答案:

答案 0 :(得分:0)

它的工作方式如下:-

{
"query": {
    "bool": {
        "must": [
            {
                "wildcard": {
                    "Author": "roh*"
                }
            },
            {
                "wildcard": {
                    "Title": "q*"
                }
            }
        ]
    }
}
}