Sphinx搜索返回随机数而不是字符串属性

时间:2014-09-25 10:44:30

标签: php sphinx

我有一个sphinx索引,定义如下:

sql_query= \
SELECT \
s.`id`, s.`name`, s.`views`, s.`released`,s.`seo_url`,\
CAST(s.`is_popular` AS SIGNED) as is_popular \
FROM `shows` s \
WHERE s.alias_id IS NULL

sql_attr_uint       = views
sql_attr_uint       = is_popular
sql_field_string    = name
sql_attr_string     = released
sql_field_string    = seo_url

我正在查询php pecl扩展名。

问题是字符串属性是作为某种随机整数返回的。 E.g。

[18] => Array
(
        [id] => 3623
                [weight] => 1624
                [attrs] => Array
                    (
                        [name] => 865774050003
                        [views] => 16
                        [released] => 865774050021
                        [seo_url] => 865774050029
                        [is_popular] => 0
                    )

            )

        [19] => Array
            (
                [id] => 3820
                [weight] => 1624
                [attrs] => Array
                    (
                        [name] => 865774050059
                        [views] => 303
                        [released] => 865774050087
                        [seo_url] => 865774050095
                        [is_popular] => 0
                    )

            )

非字符串属性是正确的,但每次运行时字符串都有不同的值。

现在我正在使用sql_field_string,但我只尝试了sql_attr_string,结果相同。

我在Windows上使用最新的sphinx版本。 (我也用2.1测试无效)。

我很丢失,有人有任何建议吗?

2 个答案:

答案 0 :(得分:0)

这几乎可以肯定意味着您的sphinxapi.php版本太旧了。

您可能正在使用您使用的服务器版本中的那个 - 因此,如果您已下载并安装了某个版本的sphinx服务器,请将sphinxapi.php文件从安装存档复制到您的应用程序文件夹中。

(基本上你有一个不理解字符串属性的sphinxapi.php)

答案 1 :(得分:0)

好的答案是我使用的php_sphinx.dll可能是为不支持字符串属性的旧版sphinx构建/编译的。 切换到提供的sphinxapi.php后,一切都按照宣传的方式工作。 感谢@barryhunter向我暗示了版本问题。