Return-Path: Delivered-To: apmail-lucene-java-commits-archive@www.apache.org Received: (qmail 33595 invoked from network); 14 May 2009 16:40:48 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 14 May 2009 16:40:48 -0000 Received: (qmail 15967 invoked by uid 500); 14 May 2009 16:40:48 -0000 Delivered-To: apmail-lucene-java-commits-archive@lucene.apache.org Received: (qmail 15926 invoked by uid 500); 14 May 2009 16:40:48 -0000 Mailing-List: contact java-commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-dev@lucene.apache.org Delivered-To: mailing list java-commits@lucene.apache.org Received: (qmail 15917 invoked by uid 99); 14 May 2009 16:40:48 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 May 2009 16:40:48 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 May 2009 16:40:44 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id E4A0A23888DD; Thu, 14 May 2009 16:40:23 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r774846 - in /lucene/java/trunk: CHANGES.txt src/java/org/apache/lucene/index/MultiSegmentReader.java src/java/org/apache/lucene/index/SegmentMergeInfo.java Date: Thu, 14 May 2009 16:40:23 -0000 To: java-commits@lucene.apache.org From: yonik@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090514164023.E4A0A23888DD@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: yonik Date: Thu May 14 16:40:23 2009 New Revision: 774846 URL: http://svn.apache.org/viewvc?rev=774846&view=rev Log: LUCENE-1596: MultiTermDocs speedup when set with MultiTermDocs.seek(MultiTermEnum) Modified: lucene/java/trunk/CHANGES.txt lucene/java/trunk/src/java/org/apache/lucene/index/MultiSegmentReader.java lucene/java/trunk/src/java/org/apache/lucene/index/SegmentMergeInfo.java Modified: lucene/java/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/lucene/java/trunk/CHANGES.txt?rev=774846&r1=774845&r2=774846&view=diff ============================================================================== --- lucene/java/trunk/CHANGES.txt (original) +++ lucene/java/trunk/CHANGES.txt Thu May 14 16:40:23 2009 @@ -345,6 +345,9 @@ score should then call Scorer.score() per hit inside collect(). (Shai Erera via Mike McCandless) + 8. LUCENE-1596: MultiTermDocs speedup when set with + MultiTermDocs.seek(MultiTermEnum) (yonik) + Documentation Build Modified: lucene/java/trunk/src/java/org/apache/lucene/index/MultiSegmentReader.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/MultiSegmentReader.java?rev=774846&r1=774845&r2=774846&view=diff ============================================================================== --- lucene/java/trunk/src/java/org/apache/lucene/index/MultiSegmentReader.java (original) +++ lucene/java/trunk/src/java/org/apache/lucene/index/MultiSegmentReader.java Thu May 14 16:40:23 2009 @@ -533,10 +533,12 @@ private Term term; private int docFreq; - + final SegmentMergeInfo[] matchingSegments; // null terminated array of matching segments + public MultiTermEnum(IndexReader[] readers, int[] starts, Term t) throws IOException { queue = new SegmentMergeQueue(readers.length); + matchingSegments = new SegmentMergeInfo[readers.length+1]; for (int i = 0; i < readers.length; i++) { IndexReader reader = readers[i]; TermEnum termEnum; @@ -547,6 +549,7 @@ termEnum = reader.terms(); SegmentMergeInfo smi = new SegmentMergeInfo(starts[i], termEnum, reader); + smi.ord = i; if (t == null ? smi.next() : termEnum.term() != null) queue.put(smi); // initialize queue else @@ -559,7 +562,20 @@ } public boolean next() throws IOException { + for (int i=0; i