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