Sphinx 斯芬克斯排序问题?

Sphinx 斯芬克斯排序问题?,sphinx,Sphinx,我用的是1.10狮身人面像 source tags { type = mysql sql_host = localhost sql_user = abc sql_pass = 123456 sql_db = compa

我用的是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\u attr\u str2ordinal=name
在使用此名称之前,我使用的是
sql\u field\u string=name,该名称是可检索的,但不是按名称排序的。
解决这个问题的办法是什么

不存储值仅存储索引后的排序顺序(序号)。所以你不能从中得到价值

:

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

:

缺少全文索引

所以我要做的是:

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排序,并用name

查询。您可以用sql_attr_str2 ordinal替换为sql_attr_string。它将按名称返回排序并返回值。我修复了我的答案,因为itok thanku中有一个错误。我需要一个例子来帮助实时索引。感谢你的快速回放。对于实时索引,我使用了delta方法,它有两个索引(一个大,一个有差异)。查询两个索引,每x分钟更新增量索引。我每x小时或每x天合并一次索引。我想这会更好地帮助您: