亲子查询

时间:2017-04-18 10:28:34

标签: elasticsearch

假设A是父类型,B是子类型。

现在B有一个名为' event'。

的字段

在时间t1,B1(a' B'类型doc)用字段'事件'索引。 =对某些父母的成功' A1'。现在在时间t2,另一个文档B2被索引为'事件' =对同一父母失败' A1'。

我要做的就是找到所有没有孩子的父母,或者只有'事件' =成功的孩子(不是一个'事件' =失败的孩子)。这可能吗?

我能看到的一个解决方案是,只要' event' =包含doc的事件被索引,就会用一些标志更新我的父(A1)。但我的B类文档也有一个ingestion_time字段。所以我想找到父母,他们从来没有在给定的时间范围内失败包含孩子。

1 个答案:

答案 0 :(得分:0)

尝试此查询

{
    "query": {
        "bool": {
            "must_not": {
                "has_child": {
                    "type": "b",
                    "query": {
                        "term": {
                            "event": "fail"
                        }
                    }
                }
            }
        }
    }
}

它应该排除所有拥有fail字段值

的孩子的父母