【问题标题】:combine fields of different documents in same index将不同文档的字段合并到同一索引中
【发布时间】:2015-10-27 18:25:47
【问题描述】:

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

doc1

{
"category":"15",
"url":"http://stackoverflow.com/questions/ask"
}

doc2

  {
    "url":"http://stackoverflow.com/questions/ask"
    "requestsize":"231",
    "logdate":"22/12/2012",
    "username":"mehmetyeneryilmaz"
    }

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

结果:

        {
        "category":"15",
        "url":"http://stackoverflow.com/questions/ask"
        "requestsize":"231",
        "logdate":"22/12/2012",
        "username":"mehmetyeneryilmaz"
        }

【问题讨论】:

  • 您需要在客户端进行合并,我应该很容易获得从 elasticsearch 进行合并所需的所有必要信息。
  • 但是会有成千上万的文件......你的意思是这是不可能的,或者你不知道那里的方式?
  • @EvaldasBuinauskas 哈哈。如果你这样想,没有人可以再发布问题了。我需要合并从查询返回的不同文档,而不是合并查询..
  • 您基本上只需要在您的doc2 中添加一个category 字段?基本上,你在问什么in your other question,对吧?

标签: elasticsearch


【解决方案1】:

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

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

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

【讨论】:

  • 有什么方法可以合并具有某些条件的文档然后对其进行查询?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-22
  • 1970-01-01
相关资源
最近更新 更多