@indefpro
Начинающий прогер

Как строить сложные запросы на ElasticSearch?

Есть поля: https://prnt.sc/h1epxv
Как построить запрос, который позволит мне выбрать N количество значений, где
WHERE `параметр 1` = "KEY1" AND `параметр2` < "KEY2" AND `параметр3` LIKE "KEY3"
затем отсортировать все это по,
ORDER BY `параметр4` > 100 DESC, параметр2 ASC
  • Вопрос задан
  • 855 просмотров
Решения вопроса 1
Kotofey
@Kotofey
Во многом зависит от вашего маппинга.
В общем случае если
`параметр 1` - число или строка
`параметр 2` - число
`параметр 3` - строка
то будет так
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "параметр 1": "KEY1"
          }
        },
        {
          "range": {
            "параметр 2": {
              "lt": "KEY2"
            }
          }
        },
        {
          "term": {
            "параметр 3": "KEY3"
          }
        }
      ],
      "must_not": [],
      "should": []
    }
  },
  "from": 0,
  "size": 10,
  "sort": [
    {
      "параметр4": "desc"
    },
    {
      "параметр2": "asc"
    }
  ],
  "aggs": {}
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы