How big is your index? Is it possible to use a RAMDirectory and run the search from memory? A virus scanner or desktop search indexer might be getting in the way of the I/O calls reading the disk.
I would also play more with getting rid of all string + string code, either with string builder or making a list of strings, and then using string.join at the end. On Fri, Oct 2, 2009 at 11:02 AM, Trevor Watson <[email protected]> wrote: > I had done StringBuilder.Append for the HitsIterator. It actually increased > the time by about 5 seconds. It might be just computer issue at that time, > however, it didn't seem to be beneficial time-wise. > > > > Gerald Pape wrote: >> >> Hi, >> would start with using StringBuilder instead of string, maybe this gives >> some performance boost. >> >> >> >> >> >> From: Trevor Watson <[email protected]> >> To: [email protected] >> Date: 02.10.2009 16:42 >> 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").StringValue() >> + ", "; >> >> // Test #2 >> for (int iCount = 0; iCount < totalDocuments; iCount++) >> { >> Lucene.Net.Documents.Document docHit = hits.Doc(iCount); >> >> docIds += docHit.GetField("DocumentId").StringValue() + ", >> "; >> } >> >> >> >> >> >> >> > > -- Michael C. Neel (@ViNull) http://www.ViNull.com Microsoft MVP & ASPInsider Do you FeelTheFunc(.com)?
