Elastica : IN 相当于 Elastica 算子
Elastica : IN equivalent operator in Elastica
关注 , I'm trying to do the same but with the PHP Elastica 但我没有成功。
我正在尝试为我的 new \Elastica\Query\Terms
提供一个数组,但找不到正确的方法。
我试过这样做:
new \Elastica\Query\Terms(array($grp_field_p => array('value' => $array_pids)))
其中$array_pids
是一个包含多个id的数组:
array(
1,
2,
3,
...
23015
);
术语聚合需要 $key => $value
而 $value
不能是数组,如果它不是数字,他会给我一个错误。
[terms] query does not support [null]]
问题是,如何正确地将数组而不是数字传递给 terms 聚合来模拟 SQL : IN
?
试试这个:
$terms = new Elastica\Query\Terms();
$terms->setTerms($grp_field_p, $array_pids);
基于其 source code :
public function __construct($key = '', array $terms = [])
{
$this->setTerms($key, $terms);
}
它应该像这样工作:
new Elastica\Query\Terms($grp_field_p, $array_pids);
关注
我正在尝试为我的 new \Elastica\Query\Terms
提供一个数组,但找不到正确的方法。
我试过这样做:
new \Elastica\Query\Terms(array($grp_field_p => array('value' => $array_pids)))
其中$array_pids
是一个包含多个id的数组:
array(
1,
2,
3,
...
23015
);
术语聚合需要 $key => $value
而 $value
不能是数组,如果它不是数字,他会给我一个错误。
[terms] query does not support [null]]
问题是,如何正确地将数组而不是数字传递给 terms 聚合来模拟 SQL : IN
?
试试这个:
$terms = new Elastica\Query\Terms();
$terms->setTerms($grp_field_p, $array_pids);
基于其 source code :
public function __construct($key = '', array $terms = [])
{
$this->setTerms($key, $terms);
}
它应该像这样工作:
new Elastica\Query\Terms($grp_field_p, $array_pids);