【发布时间】:2018-06-06 21:33:27
【问题描述】:
我有以下数据:
{
"results":[
{
"ID":"1",
"products":[
{
"product":"car",
"number":"5"
},
{
"product":"computer",
"number":"212"
}
]
},
{
"ID":"2",
"products":[
{
"product":"car",
"number":"9"
},
{
"product":"computer",
"number":"463"
},
{
"product":"bicycle",
"number":"5"
}
]
}
]
}
我的查询如下:
{
"query":{
"bool":{
"must":[
{
"wildcard":{
"results.products.product":"*car*"
}
},
{
"wildcard":{
"results.products.number":"*5*"
}
}
]
}
}
}
我期望得到的只是 ID1。因为只有它有一个带有 { "product":"car", "number":"5" } 记录的产品。但是我得到的是ID1和ID2,因为ID2的第一条记录有“product”:“car”,第三条记录分别有“number”:“5”条记录。
如何解决这个问题?
【问题讨论】:
标签: database elasticsearch search elasticsearch-dsl