Рассмотрите журнал событий, хранящийся в ElasticSearch. События выглядят так:Объединение диапазона и фильтра гистограммы в ElasticSearch
{
"timestamp": "2013-04-04T15:38:17Z",
"color": "red"
}
{
"timestamp": "2013-04-04T17:51:21Z",
"color": "green"
}
Я хочу нарисовать частоту временного интервала для каждого цвета. Я знаю, что я могу получить временные рамки с двумя запросами, как это:
{
"query": {
"match": {
"color": "red"
}
},
"size": 0,
"facets": {
"freq": {
"date_histogram": {
"interval": "day",
"field": "timestamp"
}
}
}
}
Второй запрос будет "match": { "color": "green" }
.
Может ли я комбинировать эти запросы в одно целое, что дает мое либо
- количеству (цвет)/день/ведро
- или один фацет на цвет, содержащее гистограмму для этого цвета?
Для двух цветов отдельные запросы могут работать нормально, но, как вы могли подозревать, это пример. Я действительно имею дело с более чем десяти цветами, и на данный момент один запрос будет действительно приятным.
Спасибо, я должен пропустить, что в документации. Есть ли способ запустить один грань для каждого цвета, не зная (или глядя вверх), какие цвета есть? – Peter
@Peter: Sure TermsFacet позволяет делать огранку на каждый срок, не зная условий заранее. Здесь термин будет цветом. http://www.elasticsearch.org/guide/reference/api/search/facets/terms-facet/ –
Да, термины facet вернут вам список терминов без гистограмм, которые впоследствии могут быть использованы для выполнения описанного многогранного вопроса о гранях гистограммы выше. Но я не могу придумать способ выполнить оба из них в одном запросе на данный момент. – imotov