lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Damien Lust <dl...@denali.be>
Subject Multi-Threading
Date Tue, 19 Aug 2003 10:55:09 GMT
Hello,

I developed an Client-Server application on the web, with a search  
module using Lucene. In the same application, the users can index new  
text.

So, multiple sessions can acces to the Index and concurrences problems  
can be possible.

I used Threads in Java. Is it the best solutions?

I call :

IndexFiles indexFiles = new IndexFiles();
indexFiles.run();

Here you are an extract of my code.

Thanks.

public class IndexFiles extends Thread{
     public IndexFiles(){
     }

     public void run(){
              
SynchronizedIndexWriter.insertDocument(currentIndexDocument(),"tmp/ 
IndexPath",new MainAnalyser());
     }

}



public class SynchronizedIndexWriter {

     static synchronized  void insertDocument(IndexDocument  
document,String indexLocValue,Analyzer analyzerValue){
         File f=new File(indexLocValue);
         if (f.exists())  
addDocumentToIndex(document,indexLocValue,analyzerValue,false);
         else  
addDocumentToIndex(document,indexLocValue,analyzerValue,true);
     }


     static  synchronized void addDocumentToIndex(IndexDocument  
document,String indexLocValue,Analyzer analyzerValue,boolean  
createNewIndex){
         try{
             IndexWriter indexWriter = new  
IndexWriter(indexLocValue,analyzerValue,createNewIndex);
             indexWriter.addDocument(document.getDocument());
             indexWriter.optimize();
             indexWriter.close();
         }
         catch(IOException io){
	    // If IndexWrite don't know write on index because it's locked,  
recall of the function
               => It's not very safe
              
addDocumentToIndex(document,indexLocValue,analyzerValue,createNewIndex);
         }
         catch(Exception e){

         }

     }
}

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message