Автоматически объединять / объединять данные в упругом поиске - PullRequest
0 голосов
/ 03 июля 2018

Существует ли простой способ создать новый индекс из агрегированных результатов из другого индекса (и, возможно, объединить их).

У меня большой индекс с похожими продуктами. У них есть идентификатор продукта, чтобы определить, какие продукты принадлежат друг другу, но у них другой 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 голосов
/ 16 июля 2018

На данный момент API накопления в основном предназначен для объединения числовых данных во времени. Не объединять документы. В вашем случае я бы слил документы на уровне приложения и получил бы один документ с «вложенными документами» в nested object.

...