Поисковая система баз данных Lucene - PullRequest
3 голосов
/ 03 июня 2010

Я планирую добавить функцию поиска в свое веб-приложение. Я использую Framwork Struts 2 для приложения, и элементы, которые будут искать, помещаются в реляционную базу данных. Для достижения полнотекстовой поисковой системы у меня есть следующие сомнения:

  1. Для поисковой системы на основе базы данных следует использовать только lucene или какую-либо другую утилиту, основанную на Luncene, такую ​​как Solr, luSql, Compass и т. Д.
  2. В случае Solr, можно ли встраивать его в веб-приложение, а не развертывать как отдельную WAR.
  3. Используется ли solr для поиска в реляционных базах данных или просто для файловых систем

Ответы [ 3 ]

2 голосов
/ 03 июня 2010
  1. Зависит от уровня, на котором вы хотите работать. Поскольку вы уже находитесь в приложении Java, довольно легко использовать API Lucene, индексировать свои данные и затем использовать его снова для поиска. Все, что вы можете сделать с Solr, вы можете сделать с Lucene, но, вероятно, с гораздо большим количеством логики и связующего кода.

  2. Да, посмотрите на http://wiki.apache.org/solr/Solrj#EmbeddedSolrServer

2 голосов
/ 03 июня 2010

посмотрите на поиск в спящем режиме. Я почти уверен, что он соответствует вашим потребностям, так как данные, хранящиеся в БД, будут проиндексированы и, следовательно, доступны для поиска. Насколько я помню, Solr хранит индекс в файловой системе (хотя может быть плагин для хранения индекса в БД).

Вы также посмотрите на www.elasticsearch.com. это от создателя компаса. я думаю, что для компаса будет оказана ограниченная поддержка.

0 голосов
/ 04 июня 2010

Вы говорите, что ваши данные находятся в базе данных, но вы не упоминаете, используете ли вы решение ORM. Если вы это сделаете, я также предлагаю вам посмотреть на Hibernate Search . Hibernate является требованием, но вы можете работать против классической сессии или использовать JPA. Самым большим преимуществом веб-приложения, вероятно, является то, что вы всегда работаете с управляемыми объектами и вам не нужно писать код для упрощения процесса преобразования из и в документы Lucene. Solr также имеет свое место. Это действительно зависит от ваших требований и архитектуры.

...