Php 如何在SPHINX中获得文本结果
我正在尝试使用Sphinx API获得文本结果,我得到的结果如下:Php 如何在SPHINX中获得文本结果,php,sphinx,Php,Sphinx,我正在尝试使用Sphinx API获得文本结果,我得到的结果如下: 16809 Array ( [error] => [warning] => [status] => 0 [fields] => Array ( [0] => name [1] => description ) [attrs] => Array ( ) [matches] => Array (
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
有没有可能得到像name和description这样的全文结果而不是上面的数组?好的,我想你可以从Sphinx的1-10beta版本中获得字符串数据。 您可以将所需字段作为属性添加到源定义中 在此处检查您需要使用的内容: 比如说, 我有一个包含事件数据的索引:
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_字段_字符串,因为我对文本进行了一些操作,我的意思是,过滤器、命令等等。如果你只需要这些信息,你可以使用sql属性字符串,正如他们在我发布的链接中解释的那样
我希望这有帮助!:
最好,Sphinx为您提供数据库记录的索引,但不存储它。
您必须从搜索结果中获取id,并编写另一个sql select以从该行获取数据。能否提供用于执行查询并生成上述var_dump结果的PHP代码?在该代码提供其他信息之前,短版本是您应取该值,16809,并将其用作查询中的参数,以SQL从products_description中选择name、description,其中id=?我提供了php代码。请现在检查谢谢,你已经解决了我的问题。你是对的。我可以使用该ID号获取文本记录。Sphinx不保存它索引的文本。无法获取结果中文本字段的内容。你只能知道他们是否匹配。返回的值将仅是属性,并且在文档ID中。这是Sphinx搜索的主要概念。所以编译器提出的方法是唯一的方法,但我听说返回的数据将被加载到服务器RAM中。如果我在搜索查询中获得大量记录,服务器性能就会受到影响。是吗?是的,索引中的所有数据都加载到RAM中。您无法获取全部内容:,但如果您希望在搜索结果页面中显示结果,例如,仅将少数字段显示为attrib,则此功能非常有用。