0

我的狮身人面像索引 tag_id 中有一个属性,现在我想获取所有 tag_id 为 10 和 11 的记录

当我执行 $sphinxClient->setFilter('tag_id', array(10,11)) 时,它会获取所有 tag_id 10 或 11 是否可以对两个值进行 AND 而不是 OR?

4

3 回答 3

1
$sphinxClient->setFilter('tag_id', array(10));
$sphinxClient->setFilter('tag_id', array(11));

对 setFilter 的多次调用是 ANDed :)

于 2012-04-10T17:49:08.977 回答
0

为什么两个不同的值会用 AND 返回结果?

就像是

其中 id = 1 且 id = 2

这永远不可能。你能告诉我们你想要工作的场景吗?

于 2014-03-03T07:40:41.563 回答
0

就我而言,巴里的回答没有奏效。

我检查了我过滤的内容 - 一个数组或不是数组。通过规范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'] ) );
  }
} 
于 2016-07-08T10:48:25.050 回答