Все данные в моей базе данных должны быть доступны для поиска - MySQL против Lucene - PullRequest
1 голос
/ 11 ноября 2010

Все данные в моей базе данных должны быть доступны для поиска из моего веб-приложения. Это много данных, более 2 миллионов записей.

Так что мне делать?

1) Должен ли я индексировать все данные, а затем использовать Lucene для того, чтобы запрашивать то, что мне нужно, и, следовательно, вообще не использовать MySql?

2) Или я должен использовать Lucene только для поиска и MySQL для сложных ассоциаций данных?

Я имею в виду, что я все еще мог бы использовать Lucene для ассоциаций, но, возможно, это излишество.

Так, каков наилучший подход для решения такого сценария?

Ответы [ 3 ]

2 голосов
/ 11 ноября 2010

Lucene (и большинство баз данных nosql) не является реляционной базой данных - поэтому даже если вы используете тривиальный ORM, вы столкнетесь с трудностями, пытаясь построить даже довольно тривиальное приложение исключительно вокруг Lucene.

Так что я бы предположил, что нет способа избежать использования mysql для основных данных.

(2 миллиона записей - это НЕ ОГРОМНОЕ количество данных)

Таким образом, возникает вопрос, стоит ли усилий по созданию метода для публикации данных из MySQL в Lucene. Имейте в виду, что MySQL предлагает готовую полнотекстовую индексацию и репликацию из коробки, и есть надстройки, такие как sphinx , специально разработанные для устранения недостатков стандартного решения.

Это покрывает многие из тех же вопросов, что и «связанные» вопросы, которые я вижу на моем экране в настоящее время - я предлагаю вам взглянуть на ответы - особенно этот

1 голос
/ 11 ноября 2010

Посмотрите на Apache SOLR, который основан на технологии Lucene.

0 голосов
/ 11 ноября 2010

У меня нет большого опыта работы с Lucene, но мне кажется, что он не поддерживает ассоциации таблиц так же, как MySQL, поэтому я бы сказал, что MySQL лучше в долгосрочной перспективе.

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

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