查找没有sql_attr_multi属性值的文档(Sphinx)

时间:2009-10-23 17:09:56

标签: php mysql sphinx

在我的sphinx源配置中,我有一个如下属性:

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

查询sphinx索引时,是否可以只获取没有类别属性的记录?作为一个kludgy修复我已经在数据库上执行查询以查找所有潜在的类别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);

这样可行,但似乎应该有更好的方法。

1 个答案:

答案 0 :(得分:2)

无法检查给定文档的MVA集合是否为空...但是,您可以添加另一个整数属性,该属性是附加到每个文档的类别的COUNT。然后你可以过滤等于零,或者在一定范围内。