我想使用多个必须查询,但我得到以下错误。重复的键“必须”语法错误。结果应该是芬达和可乐。我怎样才能得到这些数据呢?
必须类似于以下结果:1:可口可乐2:芬达
{
"query": {
"bool": {
"must": [
{
"match": {
"productName":"Coca Cola"
}
},
{
"match": {
"productCode": "Coke"
}
},
{
"match": {
"created_date": "2018-06-10"
}
}
],
"must": [
{
"match": {
"productName":"Fanta"
}
},
{
"match": {
"productCode": "Coke"
}
},
{
"match": {
"created_date": "2018-06-05"
}
}
]
}
}
}在mysql中:
SELECT * FROM products WHERE (name='Coca Cola‘and code='Coke'...)或者(name='Fanta'...)
发布于 2017-08-21 22:33:58
您需要将两个must (即AND)都包装在一个should (即OR)中,如下所示:
{
"query": {
"bool": {
"should": [
{
"bool": {
"must": [
{
"match": {
"productName": "Coca Cola"
}
},
{
"match": {
"productCode": "Coke"
}
},
{
"match": {
"created_date": "2018-06-10"
}
}
]
}
},
{
"bool": {
"must": [
{
"match": {
"productName": "Fanta"
}
},
{
"match": {
"productCode": "Coke"
}
},
{
"match": {
"created_date": "2018-06-05"
}
}
]
}
}
]
}
}
}https://stackoverflow.com/questions/45799479
复制相似问题