通过字符串属性sphinx过滤

时间:2011-02-04 14:32:38

标签: php sphinx

在sphinx中有没有办法在字符串属性中使用过滤?

4 个答案:

答案 0 :(得分:2)

答案是“不”

请参阅Sphinx论坛中的post

答案 1 :(得分:2)

是的,可以按字符串属性进行过滤。

例如,您有字段author_name。在PHP中执行以下操作:

$sphinx->SetMatchMode ( SPH_MATCH_EXTENDED2 )
$sphinx->Query('@author_name "Mark Twain" ', 'myindex');

此代码将在author_name字段中找到包含“Mark Twain”的所有文档。

我使用双引号查找确切的字符串。

答案 2 :(得分:1)

是的,这是可能的。

在sphinx mysql查询中将字段的值转换为crc32

SELECT crc32(field_name) as field_name FROM table

并添加字段

sql_attr_uint = field_name

比通过crc32 checksum构建查询过滤器

$sphinx->SetFilter ( 'field_name', array(crc32($string_value)) );
$sphinx->Query('something', 'myindex');

这对我有用。

答案 3 :(得分:0)

谢谢,我在思考sphinx网站时找到了有趣的解决方法,可能对某些人有用http://freelancing-god.github.com/ts/en/common_issues.html#string_filters