在弹性搜索中自动合并/汇总数据

时间:2018-07-03 14:03:42

标签: elasticsearch rollup

是否有一种简便的方法可以从另一个索引的聚合结果中创建新索引(可能合并em)。

我对相似的产品有很大的索引。它们具有一个产品ID来标识哪些产品属于同一产品,但是它们具有不同的URL /价格和不同的标题(我想以某种方式保留合并中的内容,以便进行搜索)。

因此,如果我输入8条产品线,我希望将它们全部汇总为1个产品,并且具有带有相似产品数据的嵌套数组。

我在下面的工作中尝试了汇总API。但是我无法按照我想要的方式进行操作,而我却感到那仅适用于历史/日志数据。自从每天早上更新所有这些数据以来,我所有的数据都具有相同的timestamp

PUT _xpack/rollup/job/product
{
  "index_pattern": "products",
  "rollup_index": "products_rollup",
  "cron": "*/30 * * * * ?",
  "page_size": 1000,
  "groups": {
    "date_histogram": {
      "field": "timestamp",
      "interval": "7d"
    },
    "terms": {
      "fields": [
        "product_id"
      ]
    }
  },
  "metrics": [
    {
      "field": "total_price",
      "metrics": [
        "min",
        "max",
        "sum"
      ]
    }
  ]
}

谢谢!

1 个答案:

答案 0 :(得分:1)

目前,汇总API主要用于及时汇总数字数据。不合并文档。在您的情况下,我将在应用程序级别合并文档,并在nested object中获得一个带有“子文档”的文档。