Я новичок вasticsearch.
Документы у меня выглядят примерно так:
user_name : "test",
piInfo: {
profile: {
word_count: 535,
word_count_message: "There were 535 words in the input.",
processed_language: "en",
personality: [
{
name: "Openness",
category: "personality",
percentile: 0.0015293409544490655,
children: []
},
{
name: "Conscientiousness",
category: "personality",
percentile: 0.6803430984001135,
children: []
}
]
}
}
Я пытаюсь отсортировать пользователей (имя_пользователя) по индивидуальности (например, «открытость») по «процентили»
То, что я до сих пор придумал, основано на asticsearch: вложенный тип данных и asticsearch: сортировка внутри вложенных объектов. , это код:
"query": {
"nested": {
"path": "piInfo.profile.personality",
"query": {
"bool": {
"must":
{ "match": { "piInfo.profile.personality.name": "Openness" }}
}
}
}
},
"sort" : {
"piInfo.profile.personality.percentile" : {
"order" : "asc",
"nested": {
"path": "piInfo.profile.personality",
"filter": {
"match": { "piInfo.profile.personality.name": "Openness" }
}
}
}
}
Я получил эту ошибку:
[вложенный] вложенный объект по пути [piInfo.profile.personality] не имеет вложенного типа
И это логика, потому что я не отображал это. Я беру данные из API и храню их как есть.
Есть ли способ обойти это?