Проблема сортировки сфинкса? - PullRequest
1 голос
/ 22 апреля 2011

Я использую 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 Ответ

2 голосов
/ 25 апреля 2011

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 и запрос с именем

...