我正面临一个查询要求,在给定一个元组列表的情况下,我需要返回与一个或多个元组的两个字段完全匹配的所有文档。
元组将复制以下内容:
[{"field_A": value_1, "field_B": value_2}, {"field_A": value_3, "field_B": value_4}, ...]
我能够编写一个查询,该查询可以通过布尔查询来实现;一组应有子句,每个应子句带有两个嵌套的must子句,每个must子句包含一个术语查询。
"bool": {
"should": [
{
"bool": {
"must": [
{
"term": {
"field_A": {
"value": "value_1"
}
}
},
{
"term": {
"field_B": {
"value": "value_2"
}
}
}
]
}
},
{
"bool": {
"must": [
{
"term": {
"field_A": {
"value": "value_3"
}
}
},
{
"term": {
"field_B": {
"value": "value_4"
}
}
}
]
}
},
...
]
}
但是,作为参数提供给查询的元组列表可能“无限长”,并且似乎该解决方案很快就会变得非常冗长且效率低下。
我是否错过了另一种查询样式,该查询样式从本质上允许我执行词条查询,但针对的是多字段元组列表,而不是单个元素列表?
在此先感谢所有指针!