You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/08/09 18:19:08 UTC
svn commit: r1371291 - in /lucene/dev/trunk/lucene: CHANGES.txt
core/src/java/org/apache/lucene/index/MultiFields.java
core/src/test/org/apache/lucene/index/TestMultiFields.java
Author: rmuir
Date: Thu Aug 9 16:19:08 2012
New Revision: 1371291
URL: http://svn.apache.org/viewvc?rev=1371291&view=rev
Log:
LUCENE-4298: MultiFields.getTermDocsEnum(Reader,Bits,String,BytesRef) did not work at all
Modified:
lucene/dev/trunk/lucene/CHANGES.txt
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiFields.java
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java
Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1371291&r1=1371290&r2=1371291&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Thu Aug 9 16:19:08 2012
@@ -16,6 +16,10 @@ Bug Fixes
than 1 when overlap == maxOverlap (always the case for conjunctions),
then the score would be incorrect. (Pascal Chollet, Robert Muir)
+* LUCENE-4298: MultiFields.getTermDocsEnum(IndexReader, Bits, String, BytesRef)
+ did not work at all, it would infinitely recurse.
+ (Alberto Paro via Robert Muir)
+
======================= Lucene 4.0.0-BETA =======================
New features
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiFields.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiFields.java?rev=1371291&r1=1371290&r2=1371291&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiFields.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiFields.java Thu Aug 9 16:19:08 2012
@@ -125,7 +125,7 @@ public final class MultiFields extends F
* term. This will return null if the field or term does
* not exist. */
public static DocsEnum getTermDocsEnum(IndexReader r, Bits liveDocs, String field, BytesRef term) throws IOException {
- return getTermDocsEnum(r, liveDocs, field, term);
+ return getTermDocsEnum(r, liveDocs, field, term, DocsEnum.FLAG_FREQS);
}
/** Returns {@link DocsEnum} for the specified field &
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java?rev=1371291&r1=1371290&r2=1371291&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java Thu Aug 9 16:19:08 2012
@@ -169,4 +169,22 @@ public class TestMultiFields extends Luc
r.close();
dir.close();
}
+
+ public void testTermDocsEnum() throws Exception {
+ Directory dir = newDirectory();
+ IndexWriter w = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random())));
+ Document d = new Document();
+ d.add(newStringField("f", "j", Field.Store.NO));
+ w.addDocument(d);
+ w.commit();
+ w.addDocument(d);
+ IndexReader r = w.getReader();
+ w.close();
+ DocsEnum de = MultiFields.getTermDocsEnum(r, null, "f", new BytesRef("j"));
+ assertEquals(0, de.nextDoc());
+ assertEquals(1, de.nextDoc());
+ assertEquals(DocIdSetIterator.NO_MORE_DOCS, de.nextDoc());
+ r.close();
+ dir.close();
+ }
}