我的SQL查询中有一个WHERE子句,必须将其转换为elasticsearch bool过滤器。
这是where子句:
WHERE (
option = "weight" AND value = "50kg"
)
OR (
option = "weight" AND value = "500kg"
)
AND (
option = "magic" AND value = "no"
)
我已经为查询的内部AND编写了AND过滤器,但现在我需要将它们放到bool过滤器中。
试图:
$boolFilter = new \Elastica\Filter\Bool();
$boolFilter->addShould($innerFilterAnd1);
$boolFilter->addShould($innerFilterAnd2);
$boolFilter->addMust($innerFilterAnd3);
什么都不返回。
请帮忙!
答案 0 :(得分:1)
谢谢"每个人",但我自己想出了解决方案。 您可以使用以下要点测试案例:
我的搜索查询GIST: https://gist.github.com/ArFeRR/f69ebe24ddc543b7bffd
因此。如果要按嵌套对象进行过滤,则必须将其指定为"键入:object"而不是"类型:嵌套"。
(嵌套类型存储为数组,对象类型存储为对象)