php полнотекстовый поиск mysql: lucene, sphinx или?

По общему признанию, это похоже на (но не дубликат) Сравнение системы полнотекстового поиска - Lucene, Sphinx, Postgresql, MySQL?, однако я ищу конкретные, поддерживаемые, рекомендации, основанные на опыте с более чем одной из доступных систем (кажется, много таких: «Я использовал lucene, но не sphinx», и наоборот).

Настройка: Стандартная ЛАМПА (Mysql 5.0, PHP 5).

MySQL: таблицы используют движок InnoDB для ограничений внешнего ключа

Мы смотрим на индексирование данных, а не страниц. данные для индексации могут быть на нескольких языках (кодировка utf-8)

Ряд сравнений, с которыми я столкнулся (например, 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-impressions/) дают очень разные результаты для производительности двух систем.

Кроме того, в большей части того, что я читал, почти игнорируется Xapian. Стоит ли это также рассмотреть?

Итак ... Я надеюсь, что некоторые из вас здесь, на SO, имеют некоторый опыт в этом вопросе и могут помочь с некоторыми рекомендациями или указать мне правильное направление.


person Jonathan Fingland    schedule 03.06.2009    source источник


Ответы (2)


Одним из преимуществ Sphinx является то, что вы можете «вставлять» его между своими клиентами и сервером MySQL, и он будет только «вмешиваться» в запросы, конкретно адресованные ему, прозрачно отталкивая другие от MySQL - см., Например, эта статья. Вы лучше всего можете сказать, является ли это преимуществом в вашем случае!

К сожалению, нет реального опыта работы с Xapian или Lucene - тем не менее, чтение о том, как их развернуть, звучит так (для меня!), Как будто оно того стоит, только если вы определили существенные преимущества. В противном случае развертывание Sphinx «просто как пирог» в качестве «прокси» между вашими клиентами и вашим сервером MySQL кажется мне большой и существенной победой!

person Alex Martelli    schedule 03.06.2009
comment
Сфинкс, кажется, имеет много преимуществ, но, учитывая, что у люцена есть довольно громкие сторонники, я надеялся услышать от некоторых людей, имеющих опыт работы с обоими - person Jonathan Fingland; 03.06.2009
comment
В конце концов, я пошел дальше и протестировал sphinx с намерением протестировать Lucene (и, возможно, Xapian), однако, честно говоря, он так гладко интегрировался с настройкой PHP / MySQL, что мне было трудно оправдать трату времени на другие. - person Jonathan Fingland; 06.06.2009

Я посмотрел на Zend_Search_Lucene и Sphinx в поисках проекта, который звучит похоже - поиск содержимого базы данных (в моем случае, информации о книге). Я провел около дня, рассматривая каждую. Как бы то ни было, я обнаружил, что Sphinx намного проще настроить и использовать.

person Community    schedule 17.06.2009
comment
+1 спасибо за понимание. Пока что я был приятно удивлен Sphinx, он сделал интеграцию поиска намного проще, чем я ожидал. Когда в базе данных будет больше данных, мы сможем узнать больше. Я еще не пробовал слияние дельта-индексов, но, надеюсь, их будет так же легко реализовать, как и кажется. - person Jonathan Fingland; 18.06.2009