例如,我得到三个项目,例如:
{"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有这种能力吗?
最佳答案
这应该可以,但是如果您要查找更复杂的数据,则性能可能会很低。
{
"query": {
"bool": {
"must": [
{
"term": {
"arr": {
"value": "a"
}
}
},
{
"term": {
"arr": {
"value": "b"
}
}
},
{
"script": {
"script": "doc['arr'].length == 2"
}
}
]
}
}
}