我正在尝试使用Sphinx API获取文本结果我得到的是这样的:
16809 Array (
[error] =>
[warning] =>
[status] => 0
[fields] => Array (
[0] => name
[1] => description
)
[attrs] => Array ( )
[matches] => Array (
[16809] => Array ( [weight] => 2 [attrs] => Array ( ) )
)
[total] => 1
[total_found] => 1
[time] => 0.000
[words] => Array (
[radell] => Array (
[docs] => 1
[hits] => 2
)
)
)
我在sphinx.conf中使用以下附加行:
sql_query = \
SELECT \
id, name, description \
FROM \
products_description;
sql_field_string = name
sql_query_info = SELECT * FROM products_description WHERE id=$id
是否可以获取全名结果,如名称和描述,而不是上面的数组?
答案 0 :(得分:4)
Sphinx为您提供数据库记录的索引,但不存储它。 您必须从搜索结果中获取id并写入另一个sql select以从该行获取数据。
答案 1 :(得分:1)
好的,我想你可以从1-10beta版的Sphinx中获取字符串数据。 您可以在源定义中添加所需的字段作为属性。
在此处查看您需要使用的内容:
sql_attr_string explanation in SphinxSearch.com
例如,
我有一个包含事件数据的索引:
sql_query = \
SELECT\
p.place_id,\
p.place_id as place_id_attr,\
...
...
FROM\
places p\
.......
....
GROUP BY\
p.place_id
sql_attr_uint = place_id_attr
sql_field_string = title
sql_field_string = title_normalized
sql_field_string = subtitle
sql_field_string = description
....
通过这种方式,你可以从attrs数组中的php代码获得你的字段。
一个重要的细节:我正在使用sql_field_string,因为我对文本进行了一些操作,我的意思是,过滤器,命令等等。如果您只需要信息,可以使用sql_attr_string,因为它们在我发布的链接中解释。
我希望这有帮助! :)
最好成绩,