Что-то мне не совсем понятно в отношении агрегатов во вложенных полях, которые не являются массивами, а являются простыми объектами.
Давайте рассмотрим простой сценарий, в котором у меня есть вложенные поля с языками + normalized_name (который действует каккакой-то идентификатор)
# index/_mapping
"tags": {
"type": "nested",
"properties": {
"english": {
"type": "text",
"analyzer": "english"
},
"french": {
"type": "text",
"analyzer": "french_light"
},
"normalized": {
"type": "keyword"
}
}
},
Учитывая поисковый запрос Q, я хочу агрегировать количество документов, теги которых, по-английски ИЛИ по-французски ИЛИ нормализовано, точно соответствуют моему термину (документ должен учитываться только один раз, еслион соответствует нескольким вложенным полям fr / en / normalized, но это на самом деле не имеет значения, так как английский / французский / нормализованный все различаются с учетом регистра (однако, возможно, не учитывает регистр) и используют их tags.normalized
в качестве ключа для моей агрегацииЯ считаю, что фильтрация выполнена правильно, но я все еще не получаю никаких данных ...
Раньше, когда у меня было одно значение, я делал
aggs: {tags: {terms: {field: "tag", size: 1000}}}}}
Когда япрочитайте документацию, я вижу много ссылок на вложенные агрегаты, но все они, похоже, относятся к вложенным агрегатам внутри aggregaно я просто хочу объединить количество документов на основе вложенного поля.Я пробовал что-то вроде
aggs: {tag_names: {terms: {field: "tags.normalized", size: 100}}
... но, похоже, не работает.Нужно ли использовать синтаксис nested
?Я не хочу получать результаты с вложенными агрегациями, просто для агрегирования на вложенном поле ...