Конвертировать MySQL запрос в эластичный поисковый запрос с или без расстояния - PullRequest
0 голосов
/ 11 октября 2019

У меня есть следующий MySql Query (псевдо), который мне нужно преобразовать в эластичный поисковый запрос.

SELECT *
FROM Autos 
WHERE Image!=null and (country="AUS" and distance < 50kms) or (Country="AUS" and City="")

Может кто-нибудь помочь мне в создании json Elastic Search-запроса для вышеупомянутого.

1 Ответ

0 голосов
/ 11 октября 2019

Для этого решения я переставил вашу комбинацию логических выражений в «Изображение И страна И (расстояние ИЛИ город)».

Вы используете запрос о существовании для проверки нулевого значения, запрос диапазона длямаксимальное расстояние (учитывая, что ваше расстояние хранится в числовом поле) и запросы по запросу для страны и города. Затем вы комбинируете их с логическими запросами, чтобы соответствовать логическому выражению, показанному выше:

{
  "query": {
    "bool": {
      "must": [
        {
          "exists": { "field": "Image" }
        },
        {
          "term": { "country" : { "value": "AUS" } }
        },
        {
          "bool": {
            "should": [
              {
                "range": { "distance": { "lt": "50" } }
              },
              {
                "term": { "city": { "value": "" } }
              }
            ]
          }
        }
      ]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...