Я хотел бы отсортировать документы на основе вложенных атрибутов. Учитывая У меня есть следующие документы:Сортировка документов на основе коллекции вложенных объектов
{
"id": 1,
"attributes": [
{
"name": "a",
"value": 1
},
{
"name": "b",
"value": 2
}
]
}
{
"id": 2,
"attributes": [
{
"name": "a",
"value": 2
},
{
"name": "b",
"value": 2
}
]
}
{
"id": 3,
"attributes": [
{
"name": "b",
"value": 1
}
]
}
Сортировку следует сравнить значения одних и тех же атрибутов, поэтому он должен первым идти вперед и сравнение значения атрибута «а».
Если значения группы «a» совпадают, тогда следует перейти и сравнить атрибут «b».
Если вся группа отсутствует, документ, отсутствующий в атрибуте, должен потерять сравнение.
Атрибуты могут иметь любые имена и значения, поэтому заранее не известны имена атрибутов.
Я написал этот алгоритм в своем клиентском приложении, мне просто нужен способ сделать это с помощью ElasticSearch.
Вы знаете что-нибудь о количестве атрибутов? И как вы определяете порядок, в котором учитывается каждый атрибут? –
Я не знаю, сколько атрибутов есть заранее. Порядок сравнения атрибутов должен быть в алфавитном порядке по имени атрибутов. –
Тогда я не думаю, что вы можете сделать это с помощью ES. –