php mysql полнотекстовый поиск: lucene, sphinx или? - PullRequest
14 голосов
/ 03 июня 2009

По общему признанию похоже на (но не дубликат) Сравнение полнотекстового поискового движка - 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/), либо не совсем применим (ferret - это порт 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 имеют некоторый опыт в этом вопросе и могли бы помочь с некоторыми рекомендациями или указать мне верное направление.

Ответы [ 2 ]

9 голосов
/ 03 июня 2009

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

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

3 голосов
/ 17 июня 2009

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

...