Я использую индекс эластичности со следующим отображением:
{
"mapping": {
"concept": {
"properties": {
"filter-key": {
"type": "completion",
"analyzer": "custom_index_analyzer",
"search_analyzer": "custom_query_analyzer",
"preserve_separators": false,
"preserve_position_increments": true,
"max_input_length": 50
},
"custom_id": {
"type": "keyword"
}
}
}
}
}
Индекс содержит, например, следующие записи:
{
"_source" : {
"filter-key" : {
"weight" : 22,
"input" : "ABC"
},
"custom_id" : "190006021550"
}
},
{
"_source" : {
"filter-key" : {
"weight" : 31,
"input" : "ABC"
},
"custom_id" : "190006171313"
}
},
{
"_source" : {
"filter-key" : {
"weight" : 37,
"input" : "ABBB"
},
"custom_id" : "190006171313"
}
}
Теперь я хотел бы использовать предложения эластичности в сочетании сагрегации, чтобы получить следующие предложения для запроса "AB":
{"text": "ABC", "custom_ids": ["190006021550","190006171313"]}
{"text": "ABBB", "custom_ids": ["190006171313"]}
Так что на самом деле я хотел бы сгруппировать предложения по одному из полей (filter-key.input).Это возможно в упругой?Нужно ли для этого какое-либо специальное определение сопоставления?