Расширенный поиск с эластичным поиском для отображения изменений цен по индексам временных рядов - PullRequest
0 голосов
/ 15 июня 2019

Я разделил данные временных рядов на дневные индексы.Допустим, у меня есть 2-дневные индексы.

1) index1 data-timeseries-14-04-2019 :

пример данных:

{{"_id": 1,
  "product_name": "mobile1",
  "product_id": "12145",
  "created_at": "2014-04-14",
  "offer_price": 89
  },
 {"_id": 2,
  "product_name": "mobile2",
  "product_id": "12146",
  "created_at": "2014-04-14",
  "offer_price": 70
  }
 }

2) index2 data-timeseries-15-04-2019 :

{{"_id": 1,
  "product_name": "mobile2",
  "product_id": "12146",
  "created_at": "2014-04-15",
  "offer_price": 80
  },
 {"_id": 2,
  "product_name": "mobile1",
  "product_id": "12145",
  "created_at": "2014-04-15",
  "offer_price": 89
  }
 }
`

Здесь уникальные продукты идентифицируются по их "product_id"

Я хочу написать запрос, показывающий количество продуктов, которые изменили свою цену_предложения.

, пожалуйста, помогите мне.

Я пробовал что-то подобное

{

    "aggs": {
        "distinct_by_product_id": {
            "terms": {
                "field": "product_id.keyword",
                "min_doc_count": 2,
                "size": 10

            },
            "aggs": {"count_distinct_prices":
                {"cardinality": {
                    "field": "offer_price"
                }}
            }
        }}

}

Сначала примените агрегацию терминов к product_id, а затем найдите отличительный признак no offer_price.если отличное нет больше 1, этот продукт считается вариантом цены.

  • Но поскольку я использую термин агрегирование, для большого количества данных я не могу получить все данные о товарах.

1 Ответ

0 голосов
/ 15 июня 2019

Вы можете увеличить параметр size, чтобы изменить количество возвращаемых различных продуктов, но это может вызвать проблемы с производительностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...