我有一个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测试无效)。
我很丢失,有人有任何建议吗?
答案 0 :(得分:0)
这几乎可以肯定意味着您的sphinxapi.php
版本太旧了。
您可能正在使用您使用的服务器版本中的那个 - 因此,如果您已下载并安装了某个版本的sphinx服务器,请将sphinxapi.php文件从安装存档复制到您的应用程序文件夹中。
(基本上你有一个不理解字符串属性的sphinxapi.php)
答案 1 :(得分:0)
好的答案是我使用的php_sphinx.dll可能是为不支持字符串属性的旧版sphinx构建/编译的。 切换到提供的sphinxapi.php后,一切都按照宣传的方式工作。 感谢@barryhunter向我暗示了版本问题。