我的sphinx索引中有一个属性tag_id,现在我想获取所有包含tag_id 10和11的记录
当我执行$ sphinxClient-> setFilter('tag_id',array(10,11))时,它会获取所有tag_id 10或11 是否可以AND两个值而不是OR?
答案 0 :(得分:1)
$sphinxClient->setFilter('tag_id', array(10));
$sphinxClient->setFilter('tag_id', array(11));
对setFilter的多次调用是ANDed:)
答案 1 :(得分:0)
为什么两个不同的值会以AND ??
返回结果就像
WHERE id = 1 AND id = 2
永远不可能。 你能告诉我们你正在努力工作的场景吗?
答案 2 :(得分:0)
就我而言,巴里的回答并没有奏效。
我已经检查了什么是im过滤 - 数组或不是数组。通过规范http://php.net/manual/en/sphinxclient.setfilter.php获取您需要的值:'纯数组的整数值。'
if( !empty( $filters['user_id'] ) )
{
if( is_array( $filters['user_id'] ) )
{
$this->sphinx->setFilter( 'user_id', $filters['user_id'] );
}
else
{
$this->sphinx->setFilter( 'user_id', array( (int) $filters['user_id'] ) );
}
}