Elasticsearch特殊条件查询

Elasticsearch special conditions query

我的elasticsearch文档中有条件,例如:

{
...
    "conditions": [
      {
        "required": ["a"],
        "prohibited": ["f"]
      },
      {
        "required": ["a", "b"],
        "prohibited": ["c", "d"]
      }
    ]
} 

并且有一个数据集,例如 ["a", "b", "f"](一个 true 示例,因为第二个条件匹配)

现在我想编写一个 Elasticsearch-Query,returns 条件适用于我的数据集的所有文档。我坚持的棘手部分是不要松开单一条件关系。 required 中的所有条目必须在组合 中与 匹配,与 prohibited 相同。

希望有一位 es 专家可以告诉我解决这一挑战的最佳方法。目前,我考虑在我们的文档中使用脚本查询或这些条件的不同结构。但也许有一种方法(我没有看到)将其表述为正常的 ES 查询。

经过多次尝试和挫折后,我决定使用无痛脚本来解决我的问题。从性能的角度来看,它并不完美,但它确实有效。