sphinx dash в именах авторов, вызывающих проблемы при поиске - PullRequest
0 голосов
/ 10 октября 2011

Я прочитал все посты о тире и перепробовал почти все, что в них упомянуто, но не могу понять странную проблему, с которой я столкнулся.

Например, у меня есть имя автора, подобное этому:

Артуро Перес-Реверте

Поиск «pérez-reverte» ничего не даст, и «pérez-reverte», так что выход из тире не является проблемой. Но поиск «Человек-паук» вернет хиты, доказывая, что черта, кажется, работает. Однако поиск «perez reverte» также находит совпадение, потому что он ищет каждое слово отдельно и находит «reverte» в «perez-reverte» (но, похоже, не находит «perez»).

Поиск по 'pérez' или 'perez' находит одинаковое количество документов, что говорит о том, что акцент не является проблемой (у меня есть таблица charset_table, которая учитывает символы с акцентом).

Так что я очень смущен тем, что здесь происходит. Если это не акцент и это не тире, что это может быть?

У меня не установлено значение ignore_chars, я использую UTF-8 и у меня есть charset_table для обработки символов с акцентом как обычных символов.

Единственное различие между этими двумя терминами состоит в том, что один из них является заголовком (человек-паук), а другой - автором, но они оба являются частью одного и того же объявления индекса Сфинкса, поэтому я не рассматриваю это как выпускать любым способом.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 13 октября 2011

После долгой борьбы с ним я обнаружил, что, хотя вся моя база данных - UTF-8 с надлежащим сопоставлением, мне нужно было добавить это в sphinx.conf, чтобы все работало правильно:

sql_query_pre = SET NAMES utf8
sql_query_pre = SET CHARACTER SET utf8 

После этого и наличия правильной charset_table все, кажется, работает нормально.

Надеюсь, это поможет кому-то еще.

...