2

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

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

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

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

4

1 回答 1

1

你有没有找到一种方法来做到这一点?

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

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

  2. 带有 1的top_hits聚合(在 1.3.0 中添加)size仅检索最佳匹配的孩子。

于 2014-08-23T12:12:22.853 回答