Я изо всех сил стараюсь, чтобы мои агрегаты были ограничены моим запросом.Я, конечно, попробовал:
{
"_source": ["burger.id", "burger.user_name", "burger.timestamp"],
"query": {
"query_string": {
"query": "burger.user_name:Bob"
}
},
"aggs": {
"burger_count": {
"cardinality": {
"field": "burger.id.keyword"
}
},
"min_dtm": {
"min": {
"field": "burger.timestamp"
}
},
"max_dtm": {
"max": {
"field": "burger.timestamp"
}
}
}
}
Я очень настроен на использование «query_string» для фильтрации, поскольку у нас есть очень хороший интерфейс, который позволяет пользователям легко создавать запросы, которые затем превращаются в"query_string."
К сожалению, я не нашел способа объединить query_string и агрегации, чтобы агрегации были только по результатам запроса!
Я прочитал Многие ТАК сообщения об этом, но все они очень старые и устаревшие, поскольку все они предлагают устаревший способ отфильтрованных запросов, но даже это не реализует query_string.
UPDATE
Вот несколько примеров документов.Похоже, мои результаты не фильтруются по моему запросу.Есть ли параметр, который мне не хватает?Я также изменил все поля, чтобы быть о гамбургерах ...
{
"_index": "burgers",
"_type": "burger",
"_id": "123",
"_score": 5.3759894,
"_source": {
"inference": {
"id": "1",
"user_name": "Jonathan",
"timestamp": 1541521691847
}
}
},
{
"_index": "burgers",
"_type": "burger",
"_id": "456",
"_score": 5.3759894,
"_source": {
"inference": {
"id": "2",
"user_name": "Ryan",
"timestamp": 1542416601153
}
}
},
{
"_index": "burgers",
"_type": "burger",
"_id": "789",
"_score": 5.3759894,
"_source": {
"inference": {
"id": "3",
"user_name": "Grant",
"timestamp": 1542237715511
}
}
}