首页 > 解决方案 > Elasticsearch 特殊条件查询

问题描述

我的弹性搜索文档中有条件,例如:

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

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

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

希望有一位电子专家可以给我一个方法,解决这个挑战的最佳方法是什么。目前我在考虑我们文档中这些条件的脚本查询或不同结构。但也许有一种方法(我没有看到)将其表述为普通的 ES-Query。

标签: elasticsearchconditional-statementselasticsearch-query

解决方案


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


推荐阅读