donflash
@donflash

Как заставить Sphinx Search искать «*» в индексе?

Настройки следующие:

charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+0435, U+451->U+0435, U+2A

blend_chars = +, U+23, U+2E, U+21, U+28, U+29, U+40, U+24, U+3D, U+3C, U+3E, U+3F, U+25


Так вот. Всякие точки (.), проценты (%) и прочее ($@) ищутся без проблем, однако звездочки (*) нет. Экранирование включено.

Куда копать?
  • Вопрос задан
  • 3546 просмотров
Пригласить эксперта
Ответы на вопрос 5
artemerschow
@artemerschow
enable_star = 0 и min_word_len = 1 я так полагаю.
А вообще кстати у вас все перечисленные символы указаны как разделители, а звездочка (U+2A) указана просто как допустимый символ.
Ответ написан
Комментировать
donflash
@donflash Автор вопроса
enable_star = 0

Ой как не хочется

А вообще кстати у вас все перечисленные символы указаны как разделители, а звездочка (U+2A) указана просто как допустимый символ.

Крутил по-всякому, толку ноль
Ответ написан
Комментировать
@klirichek
Слова со звёздочкой в середине ищет.
А вот обособленную звёздочку (where match ('*')) не желает. Более того, роняет демона.
Похоже, бага
Ответ написан
@klirichek
Кстати, enable_star тут в любом случае не очень уместно. Звёздочка в этом случае будет спец.символом.
Даже как багу зафиксят, останется разве что создавать индекс-дубль, где enable_star=0 и вручную рулить туда запросы на чистую "*".
Ответ написан
Комментировать
artemerschow
@artemerschow
Есть ещё один извращенный вариант, конечно...) Можно переводить все звездочки в html код * и искать потом так же
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы