В настоящее время я пытаюсь создать графики из данных, собранных в Elastic Search. Каждый раз, когда генерируется пользователь, я вставить запись в ES, имеющей следующий (пример) данные:Использовать doc_count как совокупный счет
{
"country": "US",
"id": "79ca9523dcd62420030de12b75e08bb7",
"createdAt": "1450912898"
}
идентификатора хэш идентификатора пользователя, так что идентификатор пользователя не может быть определен из ID хранятся в ES, в целях конфиденциальности.
Тип отображения в индексе ES выглядит следующим образом:
{
"user": {
"_timestamp": {
"enabled": true
},
"properties": {
"country": {
"type": "string"
},
"createdAt": {
"type": "date",
"format": "epoch_second"
},
"id": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
Теперь, чтобы получить график пользователей в день, у меня есть следующий запрос:
{
"size": 0,
"query": {
"type": {
"value": "user"
}
},
"aggs": {
"users_per_day": {
"date_histogram": {
"field": "createdAt",
"interval": "day"
}
}
}
}
Это дает мне хороший результат, такой как этот (для результата я установил интервал на минуту, чтобы дать вам небольшое представление о том, в чем проблема):
[{
"key_as_string": "1450909920",
"key": 1450909920000,
"doc_count": 8
},
{
"key_as_string": "1450909980",
"key": 1450909980000,
"doc_count": 2
},
{
"key_as_string": "1450910040",
"key": 1450910040000,
"doc_count": 5
},
{
"key_as_string": "1450910100",
"key": 1450910100000,
"doc_count": 8
},
{
"key_as_string": "1450910160",
"key": 1450910160000,
"doc_count": 4
},
{
"key_as_string": "1450910220",
"key": 1450910220000,
"doc_count": 3
},
{
"key_as_string": "1450910280",
"key": 1450910280000,
"doc_count": 6
}]
Я бы хотел использовать doc_count
для генерации совокупного графика, чтобы я мог видеть рост моей пользовательской базы, а не количество счетов, сделанных за день. Несмотря на поиск в Интернете, я не могу найти ни одного ответа, который, похоже, связан с моим вопросом. Большинство ответов, которые я нахожу, направляют меня на страницу Cumulative Sum Aggregation, но приведенный здесь пример даст вам совокупную сумму всех результатов, полученных в одном ведре. Я бы хотел получить суммарную сумму всех сумм.
Итак, следуя вашему примеру, '' doc_count' для "key_as_string": "1450909980" 'должно быть 8 (предыдущая doc_count) + 2? –
Это необязательно должно храниться в doc_count, но да. –
Это звучит скорее как нечто, что можно сделать на стороне клиента. Я имею в виду, что есть важные бит информации, результирующий набор данных нужно просто настроить. Кроме того, в зависимости от того, как вы планируете использовать эти результаты (например, графический интерфейс пользователя), «кумулятивная» вещь может быть рассмотрена в самом графике. –