sphinx 不支持字符串作为属性过滤。要使用字符串进行过滤可以使用下面的两者方法进行解决:
属性查询
需要在sphinx配置文件中定义文本字段,当查询索引时,参考其字段。sphinx配置如下:
SELECT id, user_type \
FROM users
sql_field_string = user_type
在PHP语言中,这么使用:
$matches = $this->sphinxClient->Query(‘@user_type "^admin$"‘);
全文搜索列
推荐使用这种方法。sphinx配置如下:
SELECT id, CRC32(user_type) AS user_type \
FROM users
sql_attr_int = user_type
PHP语言中,这么使用:
$this->sphinxClient->SetFilter(‘user_type‘, array(crc32(‘admin‘));
时间: 2024-10-29 13:45:28