Мне нужно написать диапазон запросов по многопольным данным. Однако каждое поле не должно обрабатываться независимо. Например, у меня есть следующий порядок:
(20, 20) > (10, 1) > (9, 9) > (9, 5) > (7, 10) > (5, 20)
Вопросы Запрос вasticsearch с несколькими диапазонами на несколько дат и Запрос диапазона дат Elasticsearch с использованием двух полей не связан , потому что в ситуации, когда я хочу найти все документы gt (7, 10)
Я получу только (20, 20)
и потеряю все остальные документы.
Для случая с двумя полями я могу написать следующий запрос:
# target query
GET /test/_search?pretty
{
"query": {
"bool": {
"should": [
{
"range": {
"field1": {
"gt": 7
}
}
},
{
"bool": {
"must": [
{
"term": {
"field1": 7
}
},
{
"range": {
"run": {
"field2": 10
}
}
}
]
}
}
]
}
}
}
Это уже выглядит неуклюже, но становится невозможным, когда требуется больше полей.
Сортировка В запросе есть форма для сортировки таких данных, как я хочу:
GET /test/_search?pretty
{
"sort": [
{ "field1": { "order": "desc" }},
{ "field2": { "order": "desc" }}
]
}
Итак, вопросы:
- Существует ли краткая форма целевого запроса , которая напоминает запрос sort ?
- Если нет, возможно, есть лучший способ реализовать его для большего числа полей в документе?
Спасибо за любую помощь!