如何在SPHINX中获取文本结果

时间:2011-08-21 10:43:31

标签: php sphinx

我正在尝试使用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

是否可以获取全名结果,如名称和描述,而不是上面的数组?

2 个答案:

答案 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,因为它们在我发布的链接中解释。

我希望这有帮助! :)

最好成绩,