2010-06-03 2 views
3

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

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

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

+0

Я использую раму Struts 2 – Abhay

ответ

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

  2. Да, взгляните на http://wiki.apache.org/solr/Solrj#EmbeddedSolrServer

+0

Но используется ли solr для поиска реляционных баз данных или только для файловых систем? – Abhay

+0

Он может сделать как и многое другое http://lucene.apache.org/solr/features.html#Detailed+Features – cherouvim

2

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

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

+0

Поиск в спящем режиме будет работать только гладко, если он уже использует спящий режим для сохранения, не так ли? – cherouvim

0

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

Смежные вопросы