#java #database #search #lucene
#java #База данных #Поиск #lucene
Вопрос:
Можем ли мы использовать Lucene для поиска текста, хранящегося в базе данных? Я видел эту статью, в которой показано, как использовать ее для обычных статей, хранящихся в виде файлов http://javatechniques.com/blog/lucene-in-memory-text-search-example /
Кто-нибудь может подсказать?
Комментарии:
1. Это MySQL или нет? Любое такое решение будет зависеть от конкретного типа базы данных.
2. @skaffman: Нет, это не так. Если индексирование выполняется извне — скажем, с помощью Lucene, — то это может быть сделано независимым от базы данных способом. Например, ссылка в ответе Pangea указывает, как это сделать вручную (создание документов Lucene), и указывает на инструменты, которые автоматизируют процесс.
Ответ №1:
Посмотрите на приведенный ниже вопрос из их FAQ. Если вы используете режим гибернации, я рекомендую вам рассмотреть поиск в режиме гибернации.
Как я могу использовать Lucene для индексации базы данных?
Комментарии:
1. Спасибо. Можно ли использовать его с JPA, когда hibernate используется в качестве поставщика
Ответ №2:
Вам следует использовать Compass Framework. Он построен на Lucene и прекрасно интегрируется с несколькими ORM
Обновление: теперь вместо этого вам следует использовать ElasticSearch (спасибо Pangea)
Комментарии:
1. Compass framework больше не поддерживается. ElasticSearch — это новый проект, начатый создателем compass.
2. Есть ли у Elastic Search хранилище JDBC?
3. В сообщении в блоге этого парня не говорится, что Compass мертв, там говорится, что Compass находится в режиме обслуживания. И совершенно ясно, что ElasticSearch не является заменой Compass — одна из вещей, которой ему не хватает, это интеграция ORM, которая сделала бы его полезным для решения этой проблемы.
Ответ №3:
Можем ли мы использовать Lucene для поиска текста, хранящегося в базе данных?
Да, вы можете. Lucene способен читать различные типы таблиц базы данных (например, mysql и т.д.). Для поиска сохраненного текста в базе данных lucene необходимо проиндексировать все данные, которые вы хотите найти. Но не забывайте: lucene — это всего лишь индекс. Чтобы получить доступ к lucene — то есть выполнить поиск внутри или запустить импорт (что угодно), вам нужна вторая часть программного обеспечения, чтобы «использовать» (контролировать, …) данные внутри lucene. Это может быть, например, solr http://lucene .apache.org/solr /
В RDBMS полнотекстовый индекс для этого больше не нужен.