Фильтрация по 2 значениям поля в упругой?

Я не уверен, как лучше сформулировать этот вопрос, поэтому я просто воспользуюсь примером MySQL.

Так что в MySQL я могу написать запрос так:

SELECT * FROM some_table WHERE some_field >= some_other_field

Какой запрос будет эквивалентен этому в Elastic Search?

Бонусный вопрос: реализован ли он в клиенте Elastica PHP?

1 ответ

Попробуйте выполнить поиск по этому запросу:

{
  "query": {
    "bool": {
      "must": {
        "script": {
          "script": "doc['some_field'].value >= doc['some_other_field'].value"
        }
      }
    }
  }
}

Основано на: https://www.elastic.co/guide/en/elasticsearch/reference/6.2/query-dsl-script-query.html

Имейте в виду, что в предыдущей версии у нас был немного другой синтаксис.

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