Sphinx поиск с поддержкой морфологии
У нас есть внутренний учебный центр в котором есть справочные материалы
Поля по степени релевантности (в обоих таблицах)
`sStudy_case_question`
`code` - Название справочного материала
`tags` - Теги поиска - дополнительные ключи для поиска
`helpInfo` - справочная информация(основной контент)
Каждый вопрос имеет тестовый вопрос и ответ
`sStudy_case_test`.`studyQuestionID`=`sStudy_case_question`.`id`
`testQuestion` - тестовый вопрос
`testAnswer`- тестовый ответ
Бекап базы предоставим исполнителю.
Более релевантные поля из таблицы sStudy_case_question, чем из sStudy_case_test
Сейчас используем fulltext MYSQL поиск но не устраивает отсутствие морфологии.
1 - склонения принтер и принтеры, всплывающее и всплывающие, окошко и окошки, работает и работают.
2 - синонимы печать распечатать напечатать, найти и поиск.
3 - отсутствие словаря - например иногда пишут штрихкод, а иногда ШК.
Необходимо настроить sphinx индекс и написать запрос который бы возвращал отсортированные релевантные результаты с учетом морфологии. Для дебага желательно чтобы запрос расчитывал релевантность по каждому полю, а сортировал по общей релевантности при этом каждого поля будет разный вес.
Переиндексация: Справочный материалы постоянно меняются и у них фиксируется дата изменения. Индекс должен дообновляться при наличии изменения
`sStudy_case_question`.`dateModified`
`sStudy_case_test`.`dateUpdated`