狮身人面像排序问题?

时间:2011-04-22 11:22:19

标签: sphinx

我正在使用1.10狮身人面像。

source tags
{
    type                            = mysql
    sql_host                        = localhost
    sql_user                        = abc
    sql_pass                        = 123456
    sql_db                          = company
    sql_sock                        =  /var/lib/mysql/mysql.sock
    sql_port                        = 3306

     sql_query_pre = SET NAMES utf8
     sql_query_range        = SELECT 1,max(id) FROM companies

sql_query                       = \
        SELECT id,name FROM companies;
;
      sql_attr_str2ordinal = name  

}

这是按名称排序,但我正在检索数据。 结果集是[name] => 954 ......,就像这样。

sql_attr_str2ordinal = name在使用之前我使用sql_field_string = name that name是反向的但不按名称排序。 这是什么解决方案?

1 个答案:

答案 0 :(得分:2)

sql_attr_str2ordinal

不存储值只会在索引后存储排序顺序(序号)。所以你不能从中获得价值。

sql_field_string

全文字段但缺少排序(因为它不是属性)。

sql_attr_string

缺少全文索引。

所以我要做的是:

source tags
{
    type                            = mysql
    sql_host                        = localhost
    sql_user                        = abc
    sql_pass                        = 123456
    sql_db                          = company
    sql_sock                        =  /var/lib/mysql/mysql.sock
    sql_port                        = 3306

     sql_query_pre = SET NAMES utf8
     sql_query_range        = SELECT 1,max(id) FROM companies

     sql_query                       = \
        SELECT id,name as name_ordinal, name as name FROM companies;
     sql_attr_str2ordinal = name_ordinal
     sql_field_string = name


}

然后按 name_ordinal 排序,并使用名称查询