例如,我得到三个项目,例如:
{"arr":["a", "b", "c"]},
{"arr":["a", "b"]},
{"arr":["a", "c"]}
我的搜索是这样的:
"query":{
"bool":{
"must":[
{
"term":{
"arr":{
"value":"a"
}
}
},
{
"term":{
"arr":{
"value":"b"
}
}
}
],
"minimum_should_match": 2
}
},
我只想获取['a','b'],但也想要['a','b','c']。
我在Google上搜索了很多,但找不到解决此问题的方法。
Elasticsearch是否有能力做到这一点?
答案 0 :(得分:1)
这应该可以,但是如果您要查找更复杂的数据,则性能可能会很低。
{
"query": {
"bool": {
"must": [
{
"term": {
"arr": {
"value": "a"
}
}
},
{
"term": {
"arr": {
"value": "b"
}
}
},
{
"script": {
"script": "doc['arr'].length == 2"
}
}
]
}
}
}