Это, по общему признанию, похоже на (но не дубликат) Сравнение полнотекстовой поисковой системы – Lucene, Sphinx, Postgresql, MySQL? , однако то, что я ищу, является конкретным, поддерживаемым, рекомендациями из опыта работы с более чем одной из доступных систем (кажется, много: «Я использовал lucene, но не сфинкс», и Versa).
Настройка: стандартная LAMP (Mysql 5.0, PHP 5).
MySQL: таблицы используют механизм InnoDB для ограничений внешнего ключа
Мы смотрим на индексирование данных, а не на страницы. данные для индексирования могут быть на нескольких языках (utf-8 charset)
Ряд сравнений, которые я встречал (например, http://blog.evanweaver.com/articles/2008/03/17/rails-search-benchmarks/ ), либо не полностью применимы (хорек – это порт lucene, но не то же, что и Zend_Search_Lucene), или они нажимают свои собственные системы / реализации (не совсем беспристрастно).
Некоторые другие, с которыми я столкнулся (например, http://whatstheplot.com/blog/tag/lucene/ и http://pagetracer.com/2008/02/15/sphinx-and-lucene-search-engines-first -импрессии / ) дают очень разные результаты для производительности двух систем.
Кроме того, все, но игнорируемые в большинстве того, что я читал, это Xapian . Возможно, это тоже стоит рассмотреть?
Итак … Я надеюсь, что некоторые из вас здесь, на SO, имеют некоторый опыт в этом вопросе и могут помочь с некоторыми рекомендациями или указать мне в правильном направлении.
Одним из преимуществ Sphinx является то, что вы можете «вставлять» его между вашими клиентами и сервером MySQL, и он будет «мешать» запросам, специально адресованным ему, прозрачно отскакивая от других из MySQL – см., Например, эту статью . Является ли это преимуществом в вашем случае использования, вам лучше всего сказать!
Извините, никакой реальной жизни с Xapian или Lucene – все еще, читая о том, как их развернуть, заставляет это звучать как (для меня!), Как если бы это стоило того, только если вы определили существенные преимущества. В противном случае развертывание Sphinx «просто как пирог», как «прокси» между вашими клиентами и вашим сервером MySQL, кажется для меня большой, существенной победой!
Я посмотрел на Zend_Search_Lucene и Sphinx для проекта, который похож: поиск содержимого базы данных (в моем случае, информация о книге). Я провел около дня, глядя на каждого. Для чего это стоит, я обнаружил, что Sphinx намного проще настроить и использовать.