We have some code that uses lucene which has been working perfectly well for
several months.
Recently, a QA team in our organization has set up a server with a much larger
data set than we have ever tested with in the past: the resulting lucene index
is about 3G in size.
On this particular server, the same lucene code which has been reliable in the
past is now exhibiting erratic behavior. The first time you do a search, it
returns the correct number of hits. The second time you do a search, it may or
may not return the correct set. By the third time you do a search, it will
return 0 hits even for a search that was returning hundreds of hits only a few
seconds earlier. All subsequent searches will return 0 hits until you stop and
restart the java process.
A snippet of the relevant code follows:
// getReader() returns the singleton IndexReader object
final IndexReader reader = getReader();
// ANALYZER is another singleton
final QueryParser queryParser = new QueryParser("text",
ANALYZER);
queryParser.setDefaultOperator(spec.getDefaultOp());
final Query query =
queryParser.parse(spec.getSearchText()).rewrite(
reader);
final IndexSearcher searcher = new IndexSearcher(reader);
final Hits hits = searcher.search(query, new
CachingWrapperFilter(
new QueryWrapperFilter(visibilityFilter)));
total = hits.length();
I understand that Lucene should be able to handle very large datasets, so I'd
be surprised if this were an actual Lucene bug. I'm hoping it's just that I'm
doing something "wrong" which has gone unnoticed so far for several months
because we've never had an index this large.
We're using lucene verison 2.2.0.
Thanks!
Justin Grunau
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]