2015-02-26 12 views
2

Мы являемся платформой для анатомии и используем сфинкс для поиска. Мы хотим сделать наш поиск более беспорядочным и начали использовать метафон для исправления орфографических ошибок. Он находит, например, phalanges, хотя поисковое слово falanges.Сфинкс с метафоном и подстановочным знаком

Это хорошо, но мы хотим большего. Мы хотим, чтобы пользователь мог ввести falange или даже falang, и мы по-прежнему находим phalanges. Любые идеи, как это сделать?

Если вы заинтересованы, вы можете проверить наш конфигурационный файл sphinx here.

Спасибо!

ответ

1

Ну, вы можете включить как metaphone, так и min_prefix_len по индексу сразу. Это будет какая-то работа.

falange* 

мог бы тогда просто сработать. (Чтобы соответствовать phalanges)

Проблема заключается в том, что «зачищенные» буквы могут изменить «звук» слова (так как изменить произношение)

например фаланга становится FLNJ, но FalAng acully становится FLNK - поэтому они не более длинные «подстроки» друг друга. (Т.е. фаланги становится FLNJS, который FLNK* обыкновение матч)


... если честно, я не знаю, хорошее решение. Возможно, вы могли бы получить лучшие результаты, если бы это было нужно применить, перед метафоном. (Так окончания, которые меняют pronouncation слов будут удалены.

Увы Sphinx не может это сделать. Если вы включите вытекающие и метафон вместе, только один из процессоров будет когда-либо огнь.


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

или изменить сфинкс, чтобы применить все морфологические процессоры (а не только первый, который меняет слово)

+0

Здравствуйте, большое вам спасибо за длинный ответ. Мы уже пробовали 'min_prefix_len', но не достигли желаемого результата. Это как-то даже отключает функцию «метафона». Я собираюсь поиграть со стеблем, чтобы посмотреть, какой результат я получу с ним, но, как вы сказали, я могу включить только «метафон» или стволовую клетку. Использование его вне Сфинкса или даже изменение Sphinx выглядит довольно сложно. Это такой редкий случай использования? Я не понимаю, почему нет более правильного решения. – JoKer

+0

ОК, может быть, ошибся в том, как эти два взаимодействия. По моему опыту, он довольно редко, только во второй раз видел что-то подобное. Посмотрите последнее сообщение http://sphinxsearch.com/blog/2014/11/26/sphinx-text-processing-pipeline/ - есть дом, в котором может справиться будущая версия сфинкса. – barryhunter

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

  • Нет связанных вопросов^_^