Use "HitCollector" instead of "Hits". "Hits" re-executes the search when you need more than 100 hits.
DIGY -----Original Message----- From: Trevor Watson [mailto:[email protected]] Sent: Friday, October 02, 2009 5:40 PM To: [email protected] Subject: Alternative to looping through Hits I am currently attempting to create a comma separated list of IDs from a given Hits collection. However, when we end up processing 6,000 or more hits, it takes 25-30 seconds per collection. I've been trying to find a faster way to change the search results to the comma separated list. Do any of you have any advice? Thanks in advance. Trevor Watson My current code looks like Lucene.Net.Search.Searcher search = new Lucene.Net.Search.IndexSearcher(string.Format("c:\\sv_index\\" + jobId.ToString())); Lucene.Net.Search.Hits hits = search.Search(query); string docIds = ""; totalDocuments = hits.Length(); // Test #1 Lucene.Net.Search.HitIterator hi = (Lucene.Net.Search.HitIterator)hits.Iterator(); while (hi.MoveNext()) docIds += ((Lucene.Net.Search.Hit)hi.Current).GetDocument().GetField("DocumentId").Str ingValue() + ", "; // Test #2 for (int iCount = 0; iCount < totalDocuments; iCount++) { Lucene.Net.Documents.Document docHit = hits.Doc(iCount); docIds += docHit.GetField("DocumentId").StringValue() + ", "; }
