Задача усовершенствовать поиск на сайте dollsempire.ru. На основе анализа поисковых запросов на сайте решили, что больше подойдет структура поиска из нескольких этапов:
1-й этап поиска: точный поиск по усеченному индексу (возможно, составленному по большей части вручную) в котором будет сопоставление популярных запросов/тэгов/категорий/итп и "посадочных страниц" для них. Например, для запроса "лол омг" сразу открывалась страница
https://dollsempire.ru/lol_suprise_omg.html
либо открывалась сетка с подходящими товарами уже отфильтрованными по какому-либо признаку и "зажатые фильтры" рядом, как например на сайте
https://www.mvideo.ru/product-list-page-cls?q=ipho...
Для создания данного индекса мы сделаем подробную разметку страниц "page id", товаров "product id" и категорий/тэгов.
2-й этап: неточный поиск по словарю / поиск по большому индексу. Например часто народ вводит длинную фразу (видимо скопированную заранее) типа "Кукла Авиа Троттер – Avea Trotter, Школа Монстер" – очевидно, что тоже нужна конкретная кукла. Но у нас в "усеченном индексе" такой фразы с соответствующим линком скорее всего не будет, тк фраза слишком длинная, но в "большом индексе", составленном автоматически такая фраза находится с более чем 99% совпадением. В таком случае тоже имеет смысл открывать конкретную страницу, подходящую под этот запрос.
3-й этап: при неуспешности 1 и 2 этапа – выдается ранжированный список результатов (примерно как сейчас).
Вопрос: как это можно реализовать с помощью стандартных настроек Sphinx (или с небольшими доработками)?
Дополнительный вопрос: в идеале хотелось бы добавить в поиск "опечаточник" и "подсказки". Есть ли какие-то готовые решения сочетающиеся со Sphinx для этого?