Лучший механизм поиска текста для интеграции с пользовательским веб-приложением? - PullRequest
3 голосов
/ 23 сентября 2008

У нас есть веб-приложение, которое позволяет пользователям загружать документы, создавать свои собственные документы и так далее. Загруженные файлы хранятся на Amazon S3, созданная информация хранится в базе данных MySQL. То, что я ищу, - это своего рода поисковая система, где я передаю все наши текстовые документы, каждый с уникальным идентификатором, и создает индекс или что-то еще. Позже я могу дать ему поисковые запросы, и он извлечет наиболее подходящие документы (по их идентификатору) вместе с фрагментами соответствующего текста.

По сути, мы хотим, чтобы наши пользователи могли выполнять поиск в своем хранилище загруженных материалов, а также всего, что другие пользователи отметили как общедоступные. Решение должно работать на стандартном сервере Linux, и в идеале оно должно быть с открытым исходным кодом, но я также рассмотрю платные решения, если они не слишком дорогие.

Пока что я нашел трех потенциальных кандидатов:

  1. Полнотекстовый поиск MySQL - некоторые отчеты, которые я читал, очень медленные
  2. Apache Lucene - к сожалению, написано на Java, но я буду использовать его, если потребуется. Предположительно быстро
  3. Sphinx - не кажется таким популярным, в идеале любое решение, которое я найду, получит большую поддержку сообщества.

Пожалуйста, дайте мне знать, если есть какие-либо другие хорошие варианты, которые я упустил, или если у вас есть опыт с любым из вышеперечисленных.

Ответы [ 6 ]

4 голосов
/ 29 сентября 2008

Взгляните на Solr . Он основан на Lucene, поэтому он очень быстрый и его очень легко использовать с любой платформы.

2 голосов
/ 29 сентября 2008

Sphinx может стоить вашего рассмотрения, так как он хорошо работает с несколькими распространенными RDMS (особенно MySQL)

1 голос
/ 29 сентября 2008

Существует также Xapian , который быстрый и настраиваемый.

Имеется поддержка пользовательских индексаторов, позволяющих индексировать данные, которые не хранятся в базе данных, что может быть полезно для ваших документов, хранящихся на S3.

0 голосов
/ 23 сентября 2008

Lucene очень хорош. И хотя он был изначально написан на Java, есть реализация PHP http://framework.zend.com/manual/en/zend.search.lucene.html

0 голосов
/ 23 сентября 2008

Существует порт Рубин Lucene, который называется " Ferret ". В дополнение к Ruby API вы можете получить базовую реализацию c под названием "cFerret".

0 голосов
/ 23 сентября 2008

Я полагаю, что Google найдет решение, отвечающее вашим потребностям. Начните здесь: Google Enterprise

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...