можно ли использовать Lucene для поиска внутри базы данных?

#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 полнотекстовый индекс для этого больше не нужен.