У меня есть продукты, хранящиеся в ES, и я пытаюсь объединить их по их размеру. Я хотел бы спроектировать следующее поведение. Для каждого термина, даже вне запроса, для получения счетчика сроков на основе запроса.Глобальная агрегирование терминов с отфильтрованным счетом - Elasticsearch 5
Так запрашивая размеров [ "S", "M"] Я хотел бы получить:
S: 1
M: 1
L: 0
ли это как-то можно?
Вот моя установка, где я получаю следующий результат:
S: 1
M: 1
Но L полностью отсутствует.
PUT demo
{
"mappings": {
"product": {
"properties": {
"size": {
"type": "keyword"
}
}
}
}
}
PUT demo/product/1
{
"size": "S"
}
PUT demo/product/2
{
"size": "M"
}
PUT demo/product/3
{
"size": "L"
}
GET demo/_search
{
"size": 0,
"query": {
"bool": {
"must": [
{
"terms": {
"size": [
"S",
"M"
]
}
}
]
}
},
"aggs": {
"size": {
"terms": {
"field": "size"
}
}
}
}
Это не похоже на работу в elasticsearch 5. https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filtered-query.html –
@JosefRousek I отредактировал мой ответ. Попробуйте еще раз в ES5 – skal88
Благодарим вас за это, но это тоже не сработает. Я провел довольно длительные исследования перед публикацией, так что это просто вопрос о том, что у меня проблема с описанием вопроса. –