Создание поиска по базе данных MySQL - PullRequest
2 голосов
/ 24 декабря 2009

Я пытаюсь создать поиск для моего сайта по базе данных MySQL. Я начал использовать Sphinx , но колебался, когда узнал, что индекс не обновляется в реальном времени. Я видел, что у них есть обновление почти в реальном времени , но я обеспокоен тем, что это не подходит для моей системы, поскольку новое содержимое добавляется в базу данных каждую минуту. Этот новый контент необходимо добавить немедленно и повторное индексирование после каждого обновления кажется странным.

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

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

Если у кого-то есть какие-либо мнения относительно какого-либо программного обеспечения, которое я упомянул, или любого другого, которое у меня нет, все идеи приветствуются. Я использую Java для серверной части, если это имеет какое-либо значение. Спасибо.

Ответы [ 2 ]

3 голосов
/ 24 декабря 2009

По своей сути базы данных - это просто файлы. Что не так с поиском по файлу?

Звучит так, будто Solr выполняет ваши требования. Если вы используете их пример установки, который они предоставляют в своей загрузке, вам не нужно много начинать. Все, что вам нужно сделать, это настроить файл schema.xml для ваших данных.

Для поиска в режиме реального времени вам необходимо добавить свои документы в индекс Solr в режиме реального времени. Это просто отправить на один из сервлетов Solr или сделать это через SolrJ (их Java-клиент).

Если вы ищете во многих столбцах, я думаю, что Solr будет более эффективным и простым в использовании, чем база данных. Это также обеспечит более богатый набор функций, таких как огранка и обработка.

2 голосов
/ 24 декабря 2009

Есть также просто Lucene и Xapian - последние имеют PHP-привязки.

...