inside22
@inside22

Как использовать geo_distance и geo_bounding_box в одном запросе?

Доброй ночи.
Буду очень признателен, если подскажите мне каким образом можно в рамках одного запроса использовать geo_distance и geo_bounding_box в одном запросе?

У меня есть вот такой запрос, где я выдергиваю данные из индекса в радиусе 1км от указанной точки.

{
  "from": 0,
  "size": 10,
  "query": {
    "bool": {
      "filter": {
        "geo_distance": {
          "distance": "1km",
          "location": "40.5586,49.6971"
        }
      }
    }
  }
}


Далее мне нужно оставить только те данные, которые входят вот в этот квадрат (экран видимости телефона), это хочу сделать для того, чтобы получать только те данные, которые будут видны на экране. Чтобы не запрашивать слишком много данных.

{
  "from": 0,
  "size": 10,
  "query": {
    "bool": {
      "filter": {
        "geo_bounding_box": {
          "location": {
            "top_left": "49.1248,36.9448",
            "bottom_right": "29.8779,58.3725"
          }
        }
      }
    }
  }
}


Буду очень признателен, если подскажите мне как формировать вложенный запрос, в котором будут geo_distance и geo_bounding_box.
  • Вопрос задан
  • 38 просмотров
Решения вопроса 1
inside22
@inside22 Автор вопроса
После того, как перенес geo_bounding_box в should все заработало.

{
  "from": 0,
  "size": 10,
  "query": {
    "bool": {
      "filter": {
        "geo_distance": {
          "distance": "1km",
          "location": "40.5586,49.6971"
        }
      },
      "should": {
        "geo_bounding_box": {
          "location": {
            "top_left": "49.1248,36.9448",
            "bottom_right": "29.8779,58.3725"
          }
        }
      }
    }
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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