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

StackOverflow https://stackoverflow.com/questions/1454252

  •  12-09-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

2° со сфинксом 2.0-x попробуйте sql_string_field

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top