Я хотел бы применить определенный запрос к запросу, он должен сначала отсортировать мои документы по одному значению, а затем по всем остальным. Мне нужно добиться чего-то вроде ORDER BY CASE WHEN в MySQL, но я не мог найти, как это сделать.Порядок Elasticsearch по определенному значению поля сначала
Каждый элемент в индексе в Резинка имеет следующую структуру:
{
"id": 123,
"name": "Title",
"categories": ["A", "B", "C"],
"price": 100,
"city": "London",
"country": "United Kingdom",
"status": 1
}
я следующий запрос:
{
"fields": [],
"sort": [{"price": {"order": "asc"}}],
"size": 0,
"query": {
"query_string": {
"query": "status:1 AND country:'United Kingdom'"
}
},
"aggs": {
"id": {
"terms": {
"field": "id",
"size": 10
}
}
}
}
So путем сортировки столбца city
со значением «Ливерпуль» первый и принимая во внимание в следующем примере:
{"id": 1, "name": "Test", "categories": ["A", "B", "C"], "price": 100, "city": "London", "country": "United Kingdom", "status": 1 }
{"id": 2, "name": "Sample", "categories": ["A", "D", "F"], "price": 200, "city": "Manchester", "country": "United Kingdom", "status": 1 }
{"id": 3, "name": "Title", "categories": ["X", "Y", "Z"], "price": 1000, "city": "Liverpool", "country": "United Kingdom", "status": 1 }
Я ожидаю, что в качестве авангара t следующий идентификатор: 3, 1, 2.
Как я могу изменить свой запрос, чтобы получить это поведение?
UPDATE: версия 1.7.2 является
Что было бы «ЗАКАЗАТЬ СЛУЧАЙ КОГДА» в вашем случае? – Val
Вы наконец нашли решение для своего дела? –