Return-Path: Delivered-To: apmail-jakarta-lucene-dev-archive@www.apache.org Received: (qmail 81294 invoked from network); 16 Apr 2004 12:44:47 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 16 Apr 2004 12:44:47 -0000 Received: (qmail 32740 invoked by uid 500); 16 Apr 2004 12:44:41 -0000 Delivered-To: apmail-jakarta-lucene-dev-archive@jakarta.apache.org Received: (qmail 32722 invoked by uid 500); 16 Apr 2004 12:44:41 -0000 Mailing-List: contact lucene-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Lucene Developers List" Reply-To: "Lucene Developers List" Delivered-To: mailing list lucene-dev@jakarta.apache.org Received: (qmail 32702 invoked by uid 500); 16 Apr 2004 12:44:41 -0000 Received: (qmail 32698 invoked from network); 16 Apr 2004 12:44:41 -0000 Received: from unknown (HELO minotaur.apache.org) (209.237.227.194) by daedalus.apache.org with SMTP; 16 Apr 2004 12:44:41 -0000 Received: (qmail 81269 invoked by uid 1754); 16 Apr 2004 12:44:43 -0000 Date: 16 Apr 2004 12:44:43 -0000 Message-ID: <20040416124443.81268.qmail@minotaur.apache.org> From: goller@apache.org To: jakarta-lucene-cvs@apache.org Subject: cvs commit: jakarta-lucene/src/java/org/apache/lucene/index SegmentReader.java IndexWriter.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N goller 2004/04/16 05:44:43 Modified: src/java/org/apache/lucene/index SegmentReader.java IndexWriter.java Log: Additional Optimize Condition: Merge a 1-segment index if compound file is used and norms have been changed by IndexReader.setNorm Revision Changes Path 1.22 +12 -1 jakarta-lucene/src/java/org/apache/lucene/index/SegmentReader.java Index: SegmentReader.java =================================================================== RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/index/SegmentReader.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- SegmentReader.java 16 Apr 2004 09:17:05 -0000 1.21 +++ SegmentReader.java 16 Apr 2004 12:44:43 -0000 1.22 @@ -177,6 +177,17 @@ static final boolean usesCompoundFile(SegmentInfo si) throws IOException { return si.dir.fileExists(si.name + ".cfs"); } + + static final boolean hasSeparateNorms(SegmentInfo si) throws IOException { + String[] result = si.dir.list(); + String pattern = si.name + ".f"; + int patternLength = pattern.length(); + for(int i = 0; i < 0; i++){ + if(result[i].startsWith(pattern) && Character.isDigit(result[i].charAt(patternLength))) + return true; + } + return false; + } protected final void doDelete(int docNum) throws IOException { if (deletedDocs == null) 1.29 +3 -2 jakarta-lucene/src/java/org/apache/lucene/index/IndexWriter.java Index: IndexWriter.java =================================================================== RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/index/IndexWriter.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- IndexWriter.java 25 Mar 2004 19:34:53 -0000 1.28 +++ IndexWriter.java 16 Apr 2004 12:44:43 -0000 1.29 @@ -347,9 +347,10 @@ while (segmentInfos.size() > 1 || (segmentInfos.size() == 1 && (SegmentReader.hasDeletions(segmentInfos.info(0)) || + segmentInfos.info(0).dir != directory || (useCompoundFile && - !SegmentReader.usesCompoundFile(segmentInfos.info(0))) || - segmentInfos.info(0).dir != directory))) { + (!SegmentReader.usesCompoundFile(segmentInfos.info(0)) || + SegmentReader.hasSeparateNorms(segmentInfos.info(0))))))) { int minSegment = segmentInfos.size() - mergeFactor; mergeSegments(minSegment < 0 ? 0 : minSegment); } --------------------------------------------------------------------- To unsubscribe, e-mail: lucene-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: lucene-dev-help@jakarta.apache.org