Сортировка по полнотекстовым столбцам в sphinx

Я знаю, что вы можете сортировать по целочисленным значениям в sphinx, но есть ли способ заставить sphinx сортировать по текстовому полю в алфавитном порядке?

Я хочу искать по имени и вместо сортировки по релевантности я хотел бы сортировать по имени в алфавитном порядке. Я знаю, что могу сделать это в mysql, но в mysql у меня нет таких функций, как выделение корней (насколько мне известно).

Всем спасибо!


person Mark L    schedule 21.09.2009    source источник


Ответы (3)


Вы можете использовать строки как порядковые атрибуты — Sphinx будет собрать все значения данного столбца, отсортировать их в алфавитном порядке, затем присвоить первому значение 1, второму значение 2 и так далее. Это позволяет сортировать, но не фильтровать.

person pat    schedule 21.09.2009
comment
Фантастический. Я попробую. - person Mark L; 22.09.2009
comment
Я заметил, что это не чувствительно к регистру. Например. AOL придет раньше Америки. - person dd.; 21.04.2010
comment
Правильно. Вы либо захотите создать кешированный столбец, в котором хранятся версии исходного столбца со строчными или прописными буквами, а затем добавить его в качестве атрибута; Или: вместо этого используйте функцию MySQL/Postrgres для преобразования столбца на лету во фрагмент SQL для атрибута. Посмотрите в конце раздела «Поля» в документации довольно удачный пример. freelancing-god.github.com/ts/en/indexing.html - person pat; 22.04.2010

Порядковый атрибут является самым простым решением, если вы используете монолитный индекс. Если вы используете распределенный индекс, у вас есть проблема. но есть другие решения.

1° преобразовать вашу строку в числовое значение. из sql с чем-то вроде conv(HEX(текстовое поле),16,10)

hex дружит со строкой и возвращает конкатенированный список шестнадцатеричных значений символов)

2° с sphinx 2.0-x попробуйте sql_string_field

person Moosh    schedule 05.11.2011

Насколько я знаю, вы не можете сортировать ничего, кроме атрибутов (и нескольких специальных атрибутов, таких как @weight и т. д.). В настоящее время атрибуты не могут быть строками, но эта функция должна появиться в 0.9.10, судя по тому, что он сказал об этом.

http://www.sphinxsearch.com/docs/current.html#sorting-modes

person Ty W    schedule 21.09.2009