2010-06-03 12 views
3

Je prévois d'ajouter une fonction de recherche dans mon application Web. J'utilise Struts 2 framwork pour l'application et les éléments qui seront recherchés sont strored dans une base de données relationnelle. Afin d'obtenir un moteur de recherche en texte intégral Je doute suivants:Moteur de recherche de base de données Lucene

  1. Pour moteur de recherche basé sur la base de données dois-je utiliser juste Lucene ou un autre utilitaire sur Luncene comme Solr, luSql, boussole, etc.
  2. En cas de Solr, peut-il être intégré dans l'applcation web plutôt que de le déployer comme une guerre en mer?
  3. est-solr utilisé pour rechercher les bases de données relationnelles ou un fichier que les systèmes
+0

Vous devriez vraiment nous dire quelles technologies vous utilisez pour votre application web. –

+0

J'utilise le framework Struts 2 – Abhay

Répondre

2
  1. Dépend du niveau auquel vous voulez opérer. Puisque vous êtes déjà dans une application Java, il est assez facile d'utiliser l'API Lucene, d'indexer vos données, puis de les réutiliser pour effectuer une recherche. Tout ce que vous pouvez faire avec Solr, vous pouvez le faire avec Lucene mais probablement avec beaucoup plus de logique et de code de colle.

  2. Oui, un coup d'oeil à http://wiki.apache.org/solr/Solrj#EmbeddedSolrServer

+0

Mais est-il utilisé pour rechercher des bases de données relationnelles ou simplement des systèmes de fichiers? – Abhay

+0

Il peut faire les deux et beaucoup plus http://lucene.apache.org/solr/features.html#Detailed+Features – cherouvim

2

regard sur la recherche de mise en veille prolongée. Je suis assez sûr qu'il correspond à vos besoins car les données qui sont stockées dans DB est ce qui sera indexé et donc mis à la disposition de la recherche. aussi loin que je me souvienne, Solr stocke l'index sur le système de fichiers (bien qu'il puisse y avoir un plugin pour stocker l'index dans DB).

Vous pouvez également consulter www.elasticsearch.com. c'est du créateur de la boussole. Je pense qu'il y aura un soutien limité fourni pour la boussole.

+0

La recherche Hibernate ne fonctionnera correctement que s'il utilise déjà Hibernate pour la persistance, non? – cherouvim

0

Vous dites que vos données sont dans la base de données, mais vous n'êtes pas si vous parlez utilisez une solution ORM. Si vous le faites, je suggère également que vous jetez un oeil à Hibernate Search. Hibernate est une exigence, mais vous pouvez travailler contre la Session classique ou utiliser JPA. Le plus grand avantage d'une application Web est probablement que vous travaillez toujours avec des entités gérées et que vous n'avez pas besoin d'écrire le code de plaque de chaudière pour convertir des documents Lucene. Solr a aussi sa place. Cela dépend vraiment de vos besoins et de votre architecture.