[ https://issues.apache.org/jira/browse/LUCENE-1471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12651876#action_12651876 ]
Luke Nezda commented on LUCENE-1471: ------------------------------------ I had a look at this code and it looks like an easy opportunity. Here's my analysis * let m = searchables.length * let n = nDocs - Current performance: n * m * lg( n ) n * m * lg( n ) + // fill queue n * lg( n ) // drain queue into scoreDocs[] if each searcher read has n worse documents than the one before it - Possible performance: n * lg( m ) m * lg( m ) + // init queue n * lg( m ) + // drain & fill queue I'll attach a patch for {{MultiSearcher}} {{search()}} methods that supports with and without {{Sort}}. Its a little kludgy - had to remove {{final}} from {{FieldDocSortedHitQueue}}'s {{lessThan}} method and do some casting. All tests pass. I doubt much search time is tied up here since this is all in-memory and n and m are usually small. > Faster MultiSearcher.search merge docs > --------------------------------------- > > Key: LUCENE-1471 > URL: https://issues.apache.org/jira/browse/LUCENE-1471 > Project: Lucene - Java > Issue Type: Improvement > Components: Search > Affects Versions: 2.4 > Reporter: Jason Rutherglen > Priority: Minor > Original Estimate: 8h > Remaining Estimate: 8h > > MultiSearcher.search places sorted search results from individual searchers > into a PriorityQueue. This can be made to be more optimal by taking > advantage of the fact that the results returned are already sorted. > The proposed solution places the sub-searcher results iterator into a custom > PriorityQueue that produces the sorted ScoreDocs. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]