如何在Elasticsearch中为每个父文档获取最佳子元素?

时间:2013-06-14 11:26:12

标签: elasticsearch parent-child

我使用父/子关系来存储一些文档:

{
    "A" : {
        "properties" : {
        }
    }
}

{
    "B" : {
        "_parent" : {
            "type" : "A"
        },
        "properties" : {
        }
    }
}

在我的用例中,我需要为每个B文档找到最佳的A文档。 (类似于has_parent查询和一些过滤器,它确保只返回每个父项的最高得分文档。)
这个问题有一个很好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

你找到了办法吗?

如果没有,一旦发布了ElasticSearch的v1.4.0,您应该可以通过组合两个聚合:

  1. 基于父类型A的children aggregation(将包含在1.4.0中)

  2. top_hits aggregation(在1.3.0中添加)size 1,仅检索最匹配的孩子。