Интро
В наше время трудно представить хороший сайт без функции поиска. При чем не просто поиска, а с поддержкой морфологии. В большинстве случаев хватит поддержки русского и английского языка.
И вот при разработке очередного проекта стала проблема поиска. Таблицы в базе не маленькие (от 100 000 записей), да плюс искать еще нужно сразу по нескольким, так что вариант с обычным LIKE ‘%запрос%’ отпал сам собой.
Ранее я пользовался поисковым движком mnoGoSearch, но вспомнив корявость его API (иногда скаладывалось впечатление, что его писали индусы с 5-ю классами приходской школы) отбросил и этот вариант.
В итоге, осталось 2 варианта:
- написать поиск по основе построения своих индексов и хранить эти индексы, например, в BerkleyDB;
- не изобретать велосипед и воспользоваться одним из самых быстрых поисковых движков - Sphinx.
Я выбрал второй вариант :)
Читать полностью »