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

标签 php mysql sphinx

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

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);

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

最佳答案

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

关于php - 查找没有 sql_attr_multi 属性值的文档 (Sphinx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1614765/

相关文章:

php - MySQL 到 PHP 双引号问题

php mysql 查询表中最后设置的行数

php - sphinx api 基本设置

Delphi FireDac (TFDConnection) 连接到 Sphinx 服务

php - 找到是营业时间 : MySQL hours calculation

php - 错误 : mysqlnd cannot connect to MySQL 4. 1+ 使用旧的不安全身份验证

PHP DateInterval 创建瞬间(微秒或毫秒)间隔

mysql - SQL 查询和字符串搜索

sphinx 搜索 : getting rt indexing to work with mysql - first time

php - mysql PHP 查询数组