私はスフィンクス検索にかなり慣れていないので、クエリに問題があります。
私は次の設定を持っています:
sql_attr_uint = user
sql_attr_uint = category
sql_field_string = title
sql_field_string = description
クエリは次のようになります
$sf->setMatchMode(SPH_MATCH_ANY);
$sf->setFilter("user", array("1033"));
$sf->setFilter("category", array("9"));
$sf->setFieldWeights(array("user"=>150,"category"=>50,"title"=>75,"description"=>75));
$result = $sf->query('my test query',"test");
いずれかのフィルターに一致するすべての行をクエリし、一致するフィルターの数で並べ替えたいと思います。優先ユーザー > タイトル = 説明 > カテゴリ
基本的に、一致しない行を削除するのではなく、フィルターを重み付けする必要があります。
ありがとうございました