Эластичный поисковый запрос для создания диапазона для 2 сопоставлений

Привет, я хочу сделать запрос, что x больше min_rent и x меньше max_rent. Вот сопоставления.

'mappings' => [
                    'project_listing_v1' => [
                        'properties' => [
                            'location' => [
                                'type' => 'geo_point'

                            ],
                            'min_rent'=>[
                                'type'=>'short',
                            ],
                            'max_rent'=>[
                                'type'=>'short',
                            ]
                        ]
0
0
18
1

Ответы 1

Вы можете использовать логический запрос с обязательным условием как таковое:

GET project_listing_v1/_search
{
  "query": {
    "bool": {
      "must": [
       {
          "range": {
            "min_rent": {
              "gt": x
            }
          }
       },
       {
          "range": {
            "max_rent": {
              "lt": x
            }
          }
        }
      ]
    }
  }
}

Примечание. В запросе необходимо заменить «x» на фактическое значение.

Подробнее о запросах bool: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html

Другие вопросы по теме