におけるフィルタの複数の値私はスフィンクスインデックスTAG_IDで属性を持っているし、今私は10と11スフィンクス
I DO $ sphinxClient->のSetFilter(「TAG_ID」をTAG_IDしたすべてのレコードを取得したいです、array(10,11))は、すべてがtag_id 10または11を持っています。 ORではなく両方の値をANDできますか? SetFilterへ
におけるフィルタの複数の値私はスフィンクスインデックスTAG_IDで属性を持っているし、今私は10と11スフィンクス
I DO $ sphinxClient->のSetFilter(「TAG_ID」をTAG_IDしたすべてのレコードを取得したいです、array(10,11))は、すべてがtag_id 10または11を持っています。 ORではなく両方の値をANDできますか? SetFilterへ
$sphinxClient->setFilter('tag_id', array(10));
$sphinxClient->setFilter('tag_id', array(11));
複数の呼び出しがAND演算されます:)
がなぜ2つの異なる値はANDで結果を返すでしょう?
それは、ID = 1とID = 2
可能になることはありません
ようなものです。 あなたが働いている風景を教えてもらえますか?
Sphinxでは、属性がMVA(複数値属性)の場合、このような条件で行を返すことができます: 'WHERE tag_id = 1 AND tag_id = 2' –
私の場合、バリーの答えは機能しませんでした。
私は何をフィルタリングしているのかを確認しました。必要な値を指定すると、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']));
}
}
私は同じことをしましたが、同じ値を設定して同じフィルタ(tag_id)を設定しても動作しません。 –
それは私にとってはうまくいきます。あなたは何か間違っているかもしれません。 tag_idはMVAではありませんか? – barryhunter