2009-09-21 2 views
0

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

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

Спасибо всем!

ответ

2

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

+0

очень приятно ... забыл об этом в документах. –

+0

Фантастический. Я отдам это. –

+0

Я заметил, что это не регистр, нечувствительный. Например. AOL предстанет перед Америкой. –

1

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

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

2

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

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

шестигранной дружит со строкой и возвращает concatened список значений гекса из символов)

2 ° с сфинкс 2,0-х попробовать sql_string_field

Смежные вопросы