У меня есть запрос агрегации -
POST /my-index/_search
{
"query": {
...
"filter": [
{
"terms": {
"venueId.keyword": [
"ID1",
"ID2"
]
}
}
]
}
},
"from": 0,
"size": 0,
"aggs": {
"venue": {
"terms": {
"field": "venueId.keyword"
},
"aggs": {
"multi_agg": {
"terms": {
"field": "networkName.keyword"
}
}
}
}
}
}
На случай, если у меня есть 2 сети (для одного места) с именами XXX
и xxx
. В результате агрегации выводится 2 сети и только 1 имя - xxx
, например -
"aggregations": {
"venue": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "ID1",
"doc_count": 5,
"multi_agg": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "xxx",
"doc_count": 2
}...
Причиной вышеизложенного является отображение, определенное в нижнем регистре -
GET /my-index/_mapping/field/networkName.keyword
{
"my-index": {
"mappings": {
"_doc": {
"networkName.keyword": {
"full_name": "networkName.keyword",
"mapping": {
"keyword": {
"type": "keyword",
"ignore_above": 256,
"normalizer": "lowercase"
}
}
}
}
}
}
}
Из-за для обратной совместимости обновление настроек невозможно. Посоветуйте, пожалуйста, если это возможно и как переопределить отображение во время запроса агрегации, чтобы получить на выходе 2 разных ключа с числом 1 и именами XXX
и xxx
.