0

私のスフィンクスソース構成には、次のような属性があります。

sql_attr_multi = uint categories from query; SELECT entry_id, cat_id FROM categories_entries

sphinx インデックスをクエリすると、カテゴリ属性を持たないレコードのみを取得できますか? 厄介な修正として、データベースに対してクエリを実行して、潜在的なカテゴリ ID をすべて検索し、これらの属性を Sphinx の結果から除外しました。

$query = $DB->query("SELECT GROUP_CONCAT(cat_id SEPARATOR ',') AS categories 
    FROM categories WHERE category_group='3' 
    GROUP BY category_group");

$sphinxclient->SetFilter("categories", explode(",", $query->result[0]['categories']), true);

これはうまくいきますが、もっと良い方法があるはずです。

4

1 に答える 1

2

特定のドキュメントのMVAコレクションが空であるかどうかを確認する方法はありません...ただし、各ドキュメントに添付されているカテゴリのCOUNTである別の整数属性を追加できます。次に、ゼロに等しいか、特定の範囲内にあることでフィルタリングできます。

于 2009-11-12T03:49:37.447 に答える