【问题标题】:find documents having no value for sql_attr_multi attribute (Sphinx)查找对 sql_attr_multi 属性没有值的文档(Sphinx)
【发布时间】:2009-10-23 17:09:55
【问题描述】:

在我的狮身人面像源配置中,我有一个这样的属性:

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

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

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

【问题讨论】:

    标签: php mysql sphinx


    【解决方案1】:

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

    【讨论】:

    • 有趣的方法。似乎没有我目前的解决方案那么 hacky。
    猜你喜欢
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 2019-03-15
    相关资源
    最近更新 更多