мне нужно сортировать результат в следующем порядке:ElasticSearch сортировки по вложенному значению поля
- пользователей, что я следующий
- пользователей, что следует мне
- Всех остальных пользователи
I есть пользователи, которые выглядят так:
{
"username": "admin"
"followers": [
{
"id": 2,
"username": "kiehn.nicola2"
},
{
"id": 3,
"username": "adaline253"
},
{
"id": 4,
"username": "skuhic4"
}
],
"following": [
{
"id": 2,
"username": "kiehn.nicola2"
},
{
"id": 3,
"username": "adaline253"
},
{
"id": 4,
"username": "skuhic4"
},
{
"id": 5,
"username": "heaney.garth5"
}
]
}
Возможно ли это?
Конечно, я знаю текущий идентификатор пользователя и имя пользователя.
Я пишу этот запрос, но он не работает (например, идентификатор пользователя является 1):
{
"query": {
"bool": {
"must": [
{
"wildcard": {
"username": {
"value": "*a*",
"boost": 1
}
}
}
]
}
},
"sort": [
{
"following.username": {
"order": "asc",
"nested_path": "following",
"nested_filter": {
"term": {
"following.id": 1
}
}
},
"followers.username": {
"order": "asc",
"nested_path": "followers",
"nested_filter": {
"term": {
"followers.id": 1
}
}
}
}
],
"size": 40
}
ramseykhalaf, спасибо! Это решение проблемы. – igrybkov