我正在使用Elastica,我需要创建一个过滤器,该过滤器将获取NULL值以及小于100的值。
目前,我的代码如下:
$this->filter = $qb->query()->bool();
$this->filter->addShould($qb->query()->range('price', ['lte' => 100]));
它返回价格低于100的数据。 我还需要获取具有 null 值的数据。 到目前为止,我尝试过:
$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
有人可以帮我解决这个问题吗?或如何解决未定义查询“缺失”的问题或创建另一个适合我需要的过滤器。谢谢。
答案 0 :(得分:0)
使用相同的Privilegis
使它按我的需要工作。
所以看起来像这样:
range()
我使用的是 addMustNot ,因此它会过滤与该过滤器匹配的所有值(即使返回值小于100,也将返回小于100的所有值)。