Включить значения «NULL» в фильтр вместе с фильтром диапазона в Elastica

Я использую Elastica, и мне нужно создать фильтр, который будет получать значения NULL вместе со значениями, которые ниже 100.

На данный момент мой код выглядит так:

$this->filter = $qb->query()->bool();
$this->filter->addShould($qb->query()->range('price', ['lte' => 100]));

Он возвращает данные с ценой ниже 100. Мне также нужно получить данные с нулевыми значениями. До сих пор я пытался:

$this->filter->addMustNot($qb->query()->exists('price')); // returns 0 items
$this->filter->addShould($qb->query()->missing('price')); // doesn't work. Gives undefined query "missing" in Facade.php

Может ли кто-нибудь помочь мне в этом вопросе? Или как устранить проблему с неопределенным запросом «отсутствует» или создать другой фильтр, который будет соответствовать моим потребностям. Благодарю.

php,elasticsearch,elastica,

0

Ответов: 1


0 принят

Используется одинаково, range()чтобы заставить его работать, как мне нужно. Так выглядит:

$this->filter->addMustNot($qb->query()->range('price', ['gte' => 100]));

Я использую addMustNot, поэтому он фильтрует все значения, соответствующие этому фильтру (все меньше 100 будут возвращены, даже если это нулевое значение).

PHP, elasticsearch, эластик,
Похожие вопросы