合并同一索引中不同文档的字段

7 elasticsearch

我的索引中有 2 个字段类型;

文档1

{
"category":"15",
"url":"http://stackoverflow.com/questions/ask"
}
Run Code Online (Sandbox Code Playgroud)

文档2

  {
    "url":"http://stackoverflow.com/questions/ask"
    "requestsize":"231",
    "logdate":"22/12/2012",
    "username":"mehmetyeneryilmaz"
    }
Run Code Online (Sandbox Code Playgroud)

现在我需要这样一个查询来过滤相同的 url 字段并返回两个文档的字段:

结果:

        {
        "category":"15",
        "url":"http://stackoverflow.com/questions/ask"
        "requestsize":"231",
        "logdate":"22/12/2012",
        "username":"mehmetyeneryilmaz"
        }
Run Code Online (Sandbox Code Playgroud)

piy*_*yal 2

Elasticsearch 给出的结果始终是每个文档,这意味着如果有多个文档满足您的查询/过滤器,它们将始终在结果中显示为不同的文档,并且永远不会合并到单个文档中。因此,在客户端合并它们是您可以使用的一种选择。为了避免获取完整文档而只是获取相关字段,您可以在查询中使用“字段”。

如果这不是您所需要的,并且仍然需要缩小查询本身的结果范围,则可以使用热门命中聚合。它将为您提供单个存储桶下的完整文档列表。但它也会有源字段,其中包含完整的文档本身。

尝试阅读页面: https://www.elastic.co/guide/en/elasticsearch/reference/1.4/search-aggregations-metrics-top-hits-aggregation.html