2012-02-13 6 views
3

Je veux faire une recherche avec Lucene sur un index. L'index est changé fréquemment. J'ai donc besoin de faire quelque chose pour chercher et indexer en même temps. C'est une application web sur Tomcat. Et je veux utiliser RAMDe répertoire pour augmenter la vitesse de recherche. Je ne sais pas comment le faire!Lucene indexer et rechercher en même temps

Répondre

3

NRTManager dans le package Lucene misc offre la possibilité de rechercher et de l'index en même temps.

TrackingIndexWriter writer; // your writer 
SearcherFactory factory = new SearcherFactory(); 
NRTManager mgr = new NRTManager(writer, factory); 

Vérifiez les méthodes NRTManager pour plus d'informations.

0

Vous devez faire que ce soit faire un

  1. lots/opérations overnight reconstruction des index.
  2. Est-ce de cette façon asynch ....

Cela dépend de l'exigence, ce temps d'attente dont vous avez besoin.

+0

Comment faire pour alterner les index sans faire tomber l'application web? –

2

Vous pouvez rechercher et indexer simultanément en utilisant le même index. Regardez le near real time search de Lucene.

quelques exemples de code du wiki,

IndexWriter writer; // create an IndexWriter here 
Document doc = null; // create a document here 
writer.addDocument(doc); // update a document 
IndexReader reader = writer.getReader(); // get a reader with the new doc 
Document addedDoc = reader.document(0); 
+0

Comment puis-je effectuer une recherche sur cet index, alors? –

Questions connexes