lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From codetester <infinitelimittes...@gmail.com>
Subject Concurrent Indexing + Searching
Date Fri, 01 Feb 2008 22:09:53 GMT

Hi All,

A newbie out here.... I am using lucene 2.3.0. I need to use lucene to
perform live searching and indexing. To achieve that, I tried the following

FSDirectory directory = FSDirectory.getDirectory(location);
IndexReader reader = IndexReader.open(directory );
IndexWriter writer = new IndexWriter(directory , new SimpleAnalyzer(),
true); // <- I want to recreate the index every time
IndexSearcher searcher = new IndexSearcher( reader );

For Searching, I have the following code
QueryParser queryParser = new QueryParser("xyz", new StandardAnalyzer());
Hits hits = searcher .search(queryParser.parse(displayName + "*"));

And for adding records, I have the following code
 // Create doc object
 writer.addDocument(doc);

 IndexReader newIndexReader = reader.reopen() ;
 if ( newIndexReader != reader ) {
       reader.close() ;
 }
 reader = newIndexReader ;
 searcher.close() ;
 searcher = new IndexSearcher(reader );
        
So the issues that I face are 

1) The addition of new record is not reflected in the search ( even though I
have reinited IndexSearcher )

2) Obviously, the add record code is not thread safe. I am trying to close
and update the reference to IndexSearcher object. I could add a sync block,
but the bigger question would be that what is the ideal way to achieve this
case where I need to add and search record real-time ? 

Thanks !




-- 
View this message in context: http://www.nabble.com/Concurrent-Indexing-%2B-Searching-tp15234463p15234463.html
Sent from the Lucene - Java Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message