You are not seeing the doc because you need to close the IndexWriter first.
To have an interactive index you can:
A: roll your own.
B: use Solr.
C: use the original LuceneIndexAccessor
https://issues.apache.org/jira/browse/LUCENE-390
D: use my updated IndexAccessor
https://issues.apache.org/jira/browse/LUCENE-1026
I have actually just added the ability to warm searchers before putting
them into to use for option D, but i havn't gotten around to posting the
new code yet.
- Mark Miller
codetester wrote:
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 !
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]