You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2016/03/12 01:27:14 UTC
[33/50] [abbrv] lucene-solr git commit: LUCENE-7086: move
SlowCompositeReaderWrapper to misc module,
and throw clear exc if you try to use in with points
LUCENE-7086: move SlowCompositeReaderWrapper to misc module, and throw clear exc if you try to use in with points
Squashed commits:
commit e26b065c71388407bc6725256ca43d7bb30dee29
Author: Mike McCandless <mi...@apache.org>
Date: Thu Mar 10 14:16:45 2016 -0500
simplify the checking for incoming points
commit b7254376dcb398c7739aab4544118bb4526961d5
Merge: 8ec82a0 d35d569
Author: Mike McCandless <mi...@apache.org>
Date: Thu Mar 10 14:05:24 2016 -0500
Merge branch 'master' into slow_wrapper
Conflicts:
lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCache.java
lucene/misc/src/test/org/apache/lucene/uninverting/TestFieldCacheReopen.java
commit 8ec82a0d9a0dd946d96da20962bb2ea95758edbe
Author: Mike McCandless <mi...@apache.org>
Date: Thu Mar 10 13:56:25 2016 -0500
LUCENE-7086: move SlowCompositeReaderWrapper to misc module
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/7523ca11
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/7523ca11
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/7523ca11
Branch: refs/heads/jira/SOLR-445
Commit: 7523ca116276fbcf03bfa630c859c4a58f77add4
Parents: 8cc978b
Author: Mike McCandless <mi...@apache.org>
Authored: Thu Mar 10 16:08:59 2016 -0500
Committer: Mike McCandless <mi...@apache.org>
Committed: Thu Mar 10 16:08:59 2016 -0500
----------------------------------------------------------------------
.../lucene50/TestLucene50DocValuesFormat.java | 2 +-
.../classification/ClassificationTestBase.java | 7 +-
.../DocumentClassificationTestBase.java | 4 +-
.../classification/utils/DataSplitterTest.java | 5 +-
.../apache/lucene/index/CompositeReader.java | 2 -
.../org/apache/lucene/index/IndexReader.java | 2 -
.../org/apache/lucene/index/MultiDocValues.java | 6 +-
.../index/SlowCompositeReaderWrapper.java | 271 ------------------
.../lucene54/TestLucene54DocValuesFormat.java | 6 +-
.../index/TestBinaryDocValuesUpdates.java | 28 +-
.../apache/lucene/index/TestCustomNorms.java | 4 +-
.../index/TestDemoParallelLeafReader.java | 21 +-
.../lucene/index/TestDirectoryReader.java | 2 +-
.../org/apache/lucene/index/TestDocValues.java | 14 +-
.../lucene/index/TestDocValuesIndexing.java | 25 +-
.../lucene/index/TestDocsAndPositions.java | 4 +-
.../apache/lucene/index/TestDocumentWriter.java | 2 +-
.../apache/lucene/index/TestDuelingCodecs.java | 4 +-
.../index/TestExitableDirectoryReader.java | 17 +-
.../lucene/index/TestFilterLeafReader.java | 8 +-
.../test/org/apache/lucene/index/TestFlex.java | 2 +-
.../lucene/index/TestIndexReaderClose.java | 52 +---
.../apache/lucene/index/TestIndexWriter.java | 6 +-
.../lucene/index/TestLazyProxSkipping.java | 2 +-
.../apache/lucene/index/TestMultiDocValues.java | 16 +-
.../lucene/index/TestMultiLevelSkipList.java | 2 +-
.../test/org/apache/lucene/index/TestNorms.java | 4 +-
.../index/TestNumericDocValuesUpdates.java | 30 +-
.../org/apache/lucene/index/TestOmitNorms.java | 8 +-
.../apache/lucene/index/TestOmitPositions.java | 2 +-
.../org/apache/lucene/index/TestOmitTf.java | 6 +-
.../org/apache/lucene/index/TestOrdinalMap.java | 5 +-
.../index/TestParallelCompositeReader.java | 34 +--
.../lucene/index/TestParallelLeafReader.java | 28 +-
.../index/TestParallelReaderEmptyIndex.java | 22 +-
.../lucene/index/TestParallelTermEnum.java | 4 +-
.../org/apache/lucene/index/TestPayloads.java | 11 +-
.../apache/lucene/index/TestPointValues.java | 4 +-
.../lucene/index/TestPostingsOffsets.java | 5 +-
.../apache/lucene/index/TestReaderClosed.java | 6 +-
.../index/TestReaderWrapperDVTypeCheck.java | 5 +-
.../lucene/index/TestSegmentTermEnum.java | 2 +-
.../apache/lucene/index/TestStressAdvance.java | 2 +-
.../org/apache/lucene/index/TestTermsEnum.java | 6 +-
.../lucene/search/TestDisjunctionMaxQuery.java | 6 +-
.../lucene/search/TestMinShouldMatch2.java | 2 +-
.../lucene/search/TestMultiPhraseEnum.java | 8 +-
.../apache/lucene/search/TestPhraseQuery.java | 4 +-
.../lucene/search/TestPositionIncrement.java | 10 +-
.../lucene/search/TestSimilarityProvider.java | 11 +-
.../apache/lucene/search/TestTermScorer.java | 7 +-
.../TestUsageTrackingFilterCachingPolicy.java | 17 +-
.../search/spans/TestFieldMaskingSpanQuery.java | 11 +-
.../search/spans/TestNearSpansOrdered.java | 29 +-
.../lucene/search/spans/TestSpanCollection.java | 9 +-
.../search/spans/TestSpanContainQuery.java | 7 +-
.../apache/lucene/search/spans/TestSpans.java | 13 +-
.../DefaultSortedSetDocValuesReaderState.java | 55 +++-
.../sortedset/TestSortedSetDocValuesFacets.java | 36 ---
.../lucene/search/grouping/TestGrouping.java | 12 +-
.../apache/lucene/search/join/TestJoinUtil.java | 8 +-
.../memory/TestMemoryIndexAgainstRAMDir.java | 12 +-
.../index/SlowCompositeReaderWrapper.java | 275 +++++++++++++++++++
.../index/TestSlowCompositeReaderWrapper.java | 91 ++++++
.../lucene/uninverting/TestDocTermOrds.java | 12 +-
.../lucene/uninverting/TestFieldCache.java | 10 +-
.../uninverting/TestFieldCacheReopen.java | 2 +-
.../uninverting/TestFieldCacheVsDocValues.java | 2 +-
.../uninverting/TestFieldCacheWithThreads.java | 2 +-
.../uninverting/TestLegacyFieldCache.java | 10 +-
.../lucene/queries/CommonTermsQueryTest.java | 6 +-
.../apache/lucene/queries/TermsQueryTest.java | 4 +-
.../function/TestSortedSetFieldSource.java | 2 +-
.../lucene/queries/payloads/PayloadHelper.java | 3 +-
.../queries/payloads/TestPayloadSpans.java | 39 ++-
.../queries/payloads/TestPayloadTermQuery.java | 11 +-
.../index/BaseDocValuesFormatTestCase.java | 64 +++--
.../index/BaseIndexFileFormatTestCase.java | 6 +-
.../lucene/index/BasePointsFormatTestCase.java | 4 +-
.../index/BasePostingsFormatTestCase.java | 66 ++---
.../index/BaseStoredFieldsFormatTestCase.java | 2 +-
.../index/BaseTermVectorsFormatTestCase.java | 12 +-
.../org/apache/lucene/search/QueryUtils.java | 6 +-
.../lucene/search/spans/MultiSpansWrapper.java | 51 ----
.../org/apache/lucene/util/LuceneTestCase.java | 53 ++--
.../lucene/analysis/TestMockAnalyzer.java | 2 +-
.../TestCompressingStoredFieldsFormat.java | 5 +-
.../TestCompressingTermVectorsFormat.java | 8 +-
.../lucene/index/TestAssertingLeafReader.java | 5 +-
89 files changed, 828 insertions(+), 880 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/TestLucene50DocValuesFormat.java
----------------------------------------------------------------------
diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/TestLucene50DocValuesFormat.java b/lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/TestLucene50DocValuesFormat.java
index 2c38728..9f174dd 100644
--- a/lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/TestLucene50DocValuesFormat.java
+++ b/lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene50/TestLucene50DocValuesFormat.java
@@ -200,7 +200,7 @@ public class TestLucene50DocValuesFormat extends BaseCompressingDocValuesFormatT
// now compare again after the merge
ir = writer.getReader();
- LeafReader ar = getOnlySegmentReader(ir);
+ LeafReader ar = getOnlyLeafReader(ir);
Terms terms = ar.terms("indexed");
if (terms != null) {
assertEquals(terms.size(), ar.getSortedSetDocValues("dv").getValueCount());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/classification/src/test/org/apache/lucene/classification/ClassificationTestBase.java
----------------------------------------------------------------------
diff --git a/lucene/classification/src/test/org/apache/lucene/classification/ClassificationTestBase.java b/lucene/classification/src/test/org/apache/lucene/classification/ClassificationTestBase.java
index 605b490..331a74b 100644
--- a/lucene/classification/src/test/org/apache/lucene/classification/ClassificationTestBase.java
+++ b/lucene/classification/src/test/org/apache/lucene/classification/ClassificationTestBase.java
@@ -27,7 +27,6 @@ import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.LeafReader;
import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.index.SlowCompositeReaderWrapper;
import org.apache.lucene.search.Query;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
@@ -190,7 +189,8 @@ public abstract class ClassificationTestBase<T> extends LuceneTestCase {
indexWriter.addDocument(doc);
indexWriter.commit();
- return SlowCompositeReaderWrapper.wrap(indexWriter.getReader());
+ indexWriter.forceMerge(1);
+ return getOnlyLeafReader(indexWriter.getReader());
}
protected LeafReader getRandomIndex(Analyzer analyzer, int size) throws IOException {
@@ -213,7 +213,8 @@ public abstract class ClassificationTestBase<T> extends LuceneTestCase {
indexWriter.addDocument(doc);
}
indexWriter.commit();
- return SlowCompositeReaderWrapper.wrap(indexWriter.getReader());
+ indexWriter.forceMerge(1);
+ return getOnlyLeafReader(indexWriter.getReader());
}
private String createRandomString(Random random) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/classification/src/test/org/apache/lucene/classification/document/DocumentClassificationTestBase.java
----------------------------------------------------------------------
diff --git a/lucene/classification/src/test/org/apache/lucene/classification/document/DocumentClassificationTestBase.java b/lucene/classification/src/test/org/apache/lucene/classification/document/DocumentClassificationTestBase.java
index 316802b..4193bde 100644
--- a/lucene/classification/src/test/org/apache/lucene/classification/document/DocumentClassificationTestBase.java
+++ b/lucene/classification/src/test/org/apache/lucene/classification/document/DocumentClassificationTestBase.java
@@ -30,7 +30,6 @@ import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.LeafReader;
import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.index.SlowCompositeReaderWrapper;
import org.apache.lucene.util.BytesRef;
import org.junit.Before;
@@ -202,7 +201,8 @@ public abstract class DocumentClassificationTestBase<T> extends ClassificationTe
indexWriter.addDocument(doc);
indexWriter.commit();
- return SlowCompositeReaderWrapper.wrap(indexWriter.getReader());
+ indexWriter.forceMerge(1);
+ return getOnlyLeafReader(indexWriter.getReader());
}
protected Document getVideoGameDocument() {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/classification/src/test/org/apache/lucene/classification/utils/DataSplitterTest.java
----------------------------------------------------------------------
diff --git a/lucene/classification/src/test/org/apache/lucene/classification/utils/DataSplitterTest.java b/lucene/classification/src/test/org/apache/lucene/classification/utils/DataSplitterTest.java
index d69fefb..2984bb5 100644
--- a/lucene/classification/src/test/org/apache/lucene/classification/utils/DataSplitterTest.java
+++ b/lucene/classification/src/test/org/apache/lucene/classification/utils/DataSplitterTest.java
@@ -27,7 +27,6 @@ import org.apache.lucene.index.LeafReader;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.index.SlowCompositeReaderWrapper;
import org.apache.lucene.store.BaseDirectoryWrapper;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.TestUtil;
@@ -75,9 +74,9 @@ public class DataSplitterTest extends LuceneTestCase {
}
indexWriter.commit();
+ indexWriter.forceMerge(1);
- originalIndex = SlowCompositeReaderWrapper.wrap(indexWriter.getReader());
-
+ originalIndex = getOnlyLeafReader(indexWriter.getReader());
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java b/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java
index 0f6a44e..83bb92a 100644
--- a/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java
+++ b/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java
@@ -26,8 +26,6 @@ import org.apache.lucene.store.*;
be used to get stored fields from the underlying LeafReaders,
but it is not possible to directly retrieve postings. To do that, get
the {@link LeafReaderContext} for all sub-readers via {@link #leaves()}.
- Alternatively, you can mimic an {@link LeafReader} (with a serious slowdown),
- by wrapping composite readers with {@link SlowCompositeReaderWrapper}.
<p>IndexReader instances for indexes on disk are usually constructed
with a call to one of the static <code>DirectoryReader.open()</code> methods,
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/java/org/apache/lucene/index/IndexReader.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/IndexReader.java b/lucene/core/src/java/org/apache/lucene/index/IndexReader.java
index 865f816..976f548 100644
--- a/lucene/core/src/java/org/apache/lucene/index/IndexReader.java
+++ b/lucene/core/src/java/org/apache/lucene/index/IndexReader.java
@@ -56,8 +56,6 @@ import org.apache.lucene.util.IOUtils;
be used to get stored fields from the underlying LeafReaders,
but it is not possible to directly retrieve postings. To do that, get
the sub-readers via {@link CompositeReader#getSequentialSubReaders}.
- Alternatively, you can mimic an {@link LeafReader} (with a serious slowdown),
- by wrapping composite readers with {@link SlowCompositeReaderWrapper}.
</ul>
<p>IndexReader instances for indexes on disk are usually constructed
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/java/org/apache/lucene/index/MultiDocValues.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/MultiDocValues.java b/lucene/core/src/java/org/apache/lucene/index/MultiDocValues.java
index 383139f..3394797 100644
--- a/lucene/core/src/java/org/apache/lucene/index/MultiDocValues.java
+++ b/lucene/core/src/java/org/apache/lucene/index/MultiDocValues.java
@@ -486,8 +486,8 @@ public class MultiDocValues {
private static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(OrdinalMap.class);
- // cache key of whoever asked for this awful thing
- final Object owner;
+ /** Cache key of whoever asked for this awful thing */
+ public final Object owner;
// globalOrd -> (globalOrd - segmentOrd) where segmentOrd is the the ordinal in the first segment that contains this term
final PackedLongValues globalOrdDeltas;
// globalOrd -> first segment container
@@ -703,7 +703,7 @@ public class MultiDocValues {
LongValues currentGlobalOrds;
/** Creates a new MultiSortedSetDocValues over <code>values</code> */
- MultiSortedSetDocValues(SortedSetDocValues values[], int docStarts[], OrdinalMap mapping) throws IOException {
+ public MultiSortedSetDocValues(SortedSetDocValues values[], int docStarts[], OrdinalMap mapping) throws IOException {
assert docStarts.length == values.length + 1;
this.values = values;
this.docStarts = docStarts;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/java/org/apache/lucene/index/SlowCompositeReaderWrapper.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/SlowCompositeReaderWrapper.java b/lucene/core/src/java/org/apache/lucene/index/SlowCompositeReaderWrapper.java
deleted file mode 100644
index e44c53c..0000000
--- a/lucene/core/src/java/org/apache/lucene/index/SlowCompositeReaderWrapper.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.lucene.index;
-
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.lucene.index.MultiDocValues.MultiSortedDocValues;
-import org.apache.lucene.index.MultiDocValues.MultiSortedSetDocValues;
-import org.apache.lucene.index.MultiDocValues.OrdinalMap;
-import org.apache.lucene.util.Bits;
-
-/**
- * This class forces a composite reader (eg a {@link
- * MultiReader} or {@link DirectoryReader}) to emulate a
- * {@link LeafReader}. This requires implementing the postings
- * APIs on-the-fly, using the static methods in {@link
- * MultiFields}, {@link MultiDocValues}, by stepping through
- * the sub-readers to merge fields/terms, appending docs, etc.
- *
- * <p><b>NOTE</b>: this class almost always results in a
- * performance hit. If this is important to your use case,
- * you'll get better performance by gathering the sub readers using
- * {@link IndexReader#getContext()} to get the
- * leaves and then operate per-LeafReader,
- * instead of using this class.
- */
-public final class SlowCompositeReaderWrapper extends LeafReader {
-
- private final CompositeReader in;
- private final Fields fields;
- private final boolean merging;
-
- /** This method is sugar for getting an {@link LeafReader} from
- * an {@link IndexReader} of any kind. If the reader is already atomic,
- * it is returned unchanged, otherwise wrapped by this class.
- */
- public static LeafReader wrap(IndexReader reader) throws IOException {
- if (reader instanceof CompositeReader) {
- return new SlowCompositeReaderWrapper((CompositeReader) reader, false);
- } else {
- assert reader instanceof LeafReader;
- return (LeafReader) reader;
- }
- }
-
- SlowCompositeReaderWrapper(CompositeReader reader, boolean merging) throws IOException {
- super();
- in = reader;
- fields = MultiFields.getFields(in);
- in.registerParentReader(this);
- this.merging = merging;
- }
-
- @Override
- public String toString() {
- return "SlowCompositeReaderWrapper(" + in + ")";
- }
-
- @Override
- public void addCoreClosedListener(CoreClosedListener listener) {
- addCoreClosedListenerAsReaderClosedListener(in, listener);
- }
-
- @Override
- public void removeCoreClosedListener(CoreClosedListener listener) {
- removeCoreClosedListenerAsReaderClosedListener(in, listener);
- }
-
- @Override
- public Fields fields() {
- ensureOpen();
- return fields;
- }
-
- @Override
- public NumericDocValues getNumericDocValues(String field) throws IOException {
- ensureOpen();
- return MultiDocValues.getNumericValues(in, field);
- }
-
- @Override
- public Bits getDocsWithField(String field) throws IOException {
- ensureOpen();
- return MultiDocValues.getDocsWithField(in, field);
- }
-
- @Override
- public BinaryDocValues getBinaryDocValues(String field) throws IOException {
- ensureOpen();
- return MultiDocValues.getBinaryValues(in, field);
- }
-
- @Override
- public SortedNumericDocValues getSortedNumericDocValues(String field) throws IOException {
- ensureOpen();
- return MultiDocValues.getSortedNumericValues(in, field);
- }
-
- @Override
- public SortedDocValues getSortedDocValues(String field) throws IOException {
- ensureOpen();
- OrdinalMap map = null;
- synchronized (cachedOrdMaps) {
- map = cachedOrdMaps.get(field);
- if (map == null) {
- // uncached, or not a multi dv
- SortedDocValues dv = MultiDocValues.getSortedValues(in, field);
- if (dv instanceof MultiSortedDocValues) {
- map = ((MultiSortedDocValues)dv).mapping;
- if (map.owner == getCoreCacheKey() && merging == false) {
- cachedOrdMaps.put(field, map);
- }
- }
- return dv;
- }
- }
- int size = in.leaves().size();
- final SortedDocValues[] values = new SortedDocValues[size];
- final int[] starts = new int[size+1];
- for (int i = 0; i < size; i++) {
- LeafReaderContext context = in.leaves().get(i);
- final LeafReader reader = context.reader();
- final FieldInfo fieldInfo = reader.getFieldInfos().fieldInfo(field);
- if (fieldInfo != null && fieldInfo.getDocValuesType() != DocValuesType.SORTED) {
- return null;
- }
- SortedDocValues v = reader.getSortedDocValues(field);
- if (v == null) {
- v = DocValues.emptySorted();
- }
- values[i] = v;
- starts[i] = context.docBase;
- }
- starts[size] = maxDoc();
- return new MultiSortedDocValues(values, starts, map);
- }
-
- @Override
- public SortedSetDocValues getSortedSetDocValues(String field) throws IOException {
- ensureOpen();
- OrdinalMap map = null;
- synchronized (cachedOrdMaps) {
- map = cachedOrdMaps.get(field);
- if (map == null) {
- // uncached, or not a multi dv
- SortedSetDocValues dv = MultiDocValues.getSortedSetValues(in, field);
- if (dv instanceof MultiSortedSetDocValues) {
- map = ((MultiSortedSetDocValues)dv).mapping;
- if (map.owner == getCoreCacheKey() && merging == false) {
- cachedOrdMaps.put(field, map);
- }
- }
- return dv;
- }
- }
-
- assert map != null;
- int size = in.leaves().size();
- final SortedSetDocValues[] values = new SortedSetDocValues[size];
- final int[] starts = new int[size+1];
- for (int i = 0; i < size; i++) {
- LeafReaderContext context = in.leaves().get(i);
- final LeafReader reader = context.reader();
- final FieldInfo fieldInfo = reader.getFieldInfos().fieldInfo(field);
- if(fieldInfo != null && fieldInfo.getDocValuesType() != DocValuesType.SORTED_SET){
- return null;
- }
- SortedSetDocValues v = reader.getSortedSetDocValues(field);
- if (v == null) {
- v = DocValues.emptySortedSet();
- }
- values[i] = v;
- starts[i] = context.docBase;
- }
- starts[size] = maxDoc();
- return new MultiSortedSetDocValues(values, starts, map);
- }
-
- // TODO: this could really be a weak map somewhere else on the coreCacheKey,
- // but do we really need to optimize slow-wrapper any more?
- private final Map<String,OrdinalMap> cachedOrdMaps = new HashMap<>();
-
- @Override
- public NumericDocValues getNormValues(String field) throws IOException {
- ensureOpen();
- return MultiDocValues.getNormValues(in, field);
- }
-
- @Override
- public Fields getTermVectors(int docID) throws IOException {
- ensureOpen();
- return in.getTermVectors(docID);
- }
-
- @Override
- public int numDocs() {
- // Don't call ensureOpen() here (it could affect performance)
- return in.numDocs();
- }
-
- @Override
- public int maxDoc() {
- // Don't call ensureOpen() here (it could affect performance)
- return in.maxDoc();
- }
-
- @Override
- public void document(int docID, StoredFieldVisitor visitor) throws IOException {
- ensureOpen();
- in.document(docID, visitor);
- }
-
- @Override
- public Bits getLiveDocs() {
- ensureOpen();
- return MultiFields.getLiveDocs(in);
- }
-
- @Override
- public PointValues getPointValues() {
- ensureOpen();
- return null;
- }
-
- @Override
- public FieldInfos getFieldInfos() {
- ensureOpen();
- return MultiFields.getMergedFieldInfos(in);
- }
-
- @Override
- public Object getCoreCacheKey() {
- return in.getCoreCacheKey();
- }
-
- @Override
- public Object getCombinedCoreAndDeletesKey() {
- return in.getCombinedCoreAndDeletesKey();
- }
-
- @Override
- protected void doClose() throws IOException {
- // TODO: as this is a wrapper, should we really close the delegate?
- in.close();
- }
-
- @Override
- public void checkIntegrity() throws IOException {
- ensureOpen();
- for (LeafReaderContext ctx : in.leaves()) {
- ctx.reader().checkIntegrity();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/codecs/lucene54/TestLucene54DocValuesFormat.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/codecs/lucene54/TestLucene54DocValuesFormat.java b/lucene/core/src/test/org/apache/lucene/codecs/lucene54/TestLucene54DocValuesFormat.java
index cede1d7..b6f178d 100644
--- a/lucene/core/src/test/org/apache/lucene/codecs/lucene54/TestLucene54DocValuesFormat.java
+++ b/lucene/core/src/test/org/apache/lucene/codecs/lucene54/TestLucene54DocValuesFormat.java
@@ -362,7 +362,7 @@ public class TestLucene54DocValuesFormat extends BaseCompressingDocValuesFormatT
// now compare again after the merge
ir = writer.getReader();
- LeafReader ar = getOnlySegmentReader(ir);
+ LeafReader ar = getOnlyLeafReader(ir);
Terms terms = ar.terms("indexed");
if (terms != null) {
assertEquals(terms.size(), ar.getSortedSetDocValues("dv").getValueCount());
@@ -541,7 +541,7 @@ public class TestLucene54DocValuesFormat extends BaseCompressingDocValuesFormatT
w.forceMerge(1);
DirectoryReader r = DirectoryReader.open(w);
w.close();
- SegmentReader sr = getOnlySegmentReader(r);
+ LeafReader sr = getOnlyLeafReader(r);
assertEquals(maxDoc, sr.maxDoc());
SortedSetDocValues values = sr.getSortedSetDocValues("sset");
assertNotNull(values);
@@ -591,7 +591,7 @@ public class TestLucene54DocValuesFormat extends BaseCompressingDocValuesFormatT
w.forceMerge(1);
DirectoryReader r = DirectoryReader.open(w);
w.close();
- SegmentReader sr = getOnlySegmentReader(r);
+ LeafReader sr = getOnlyLeafReader(r);
assertEquals(maxDoc, sr.maxDoc());
SortedNumericDocValues values = sr.getSortedNumericDocValues("snum");
assertNotNull(values);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java b/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java
index 4025f58..8dc8a3c 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java
@@ -253,16 +253,14 @@ public class TestBinaryDocValuesUpdates extends LuceneTestCase {
writer.close();
}
- LeafReader slow = SlowCompositeReaderWrapper.wrap(reader);
-
- Bits liveDocs = slow.getLiveDocs();
+ Bits liveDocs = MultiFields.getLiveDocs(reader);
boolean[] expectedLiveDocs = new boolean[] { true, false, false, true, true, true };
for (int i = 0; i < expectedLiveDocs.length; i++) {
assertEquals(expectedLiveDocs[i], liveDocs.get(i));
}
long[] expectedValues = new long[] { 1, 2, 3, 17, 5, 17};
- BinaryDocValues bdv = slow.getBinaryDocValues("val");
+ BinaryDocValues bdv = MultiDocValues.getBinaryValues(reader, "val");
for (int i = 0; i < expectedValues.length; i++) {
assertEquals(expectedValues[i], getValue(bdv, i));
}
@@ -469,10 +467,9 @@ public class TestBinaryDocValuesUpdates extends LuceneTestCase {
final DirectoryReader reader = DirectoryReader.open(dir);
- LeafReader r = SlowCompositeReaderWrapper.wrap(reader);
- BinaryDocValues bdv = r.getBinaryDocValues("bdv");
- SortedDocValues sdv = r.getSortedDocValues("sorted");
- for (int i = 0; i < r.maxDoc(); i++) {
+ BinaryDocValues bdv = MultiDocValues.getBinaryValues(reader, "bdv");
+ SortedDocValues sdv = MultiDocValues.getSortedValues(reader, "sorted");
+ for (int i = 0; i < reader.maxDoc(); i++) {
assertEquals(17, getValue(bdv, i));
BytesRef term = sdv.get(i);
assertEquals(new BytesRef("value"), term);
@@ -499,9 +496,8 @@ public class TestBinaryDocValuesUpdates extends LuceneTestCase {
writer.close();
final DirectoryReader reader = DirectoryReader.open(dir);
- final LeafReader r = SlowCompositeReaderWrapper.wrap(reader);
- BinaryDocValues bdv = r.getBinaryDocValues("bdv");
- for (int i = 0; i < r.maxDoc(); i++) {
+ BinaryDocValues bdv = MultiDocValues.getBinaryValues(reader, "bdv");
+ for (int i = 0; i < reader.maxDoc(); i++) {
assertEquals(3, getValue(bdv, i));
}
reader.close();
@@ -598,9 +594,8 @@ public class TestBinaryDocValuesUpdates extends LuceneTestCase {
writer.close();
final DirectoryReader reader = DirectoryReader.open(dir);
- final LeafReader r = SlowCompositeReaderWrapper.wrap(reader);
- BinaryDocValues bdv = r.getBinaryDocValues("bdv");
- for (int i = 0; i < r.maxDoc(); i++) {
+ BinaryDocValues bdv = MultiDocValues.getBinaryValues(reader, "bdv");
+ for (int i = 0; i < reader.maxDoc(); i++) {
assertEquals(3, getValue(bdv, i));
}
reader.close();
@@ -1018,9 +1013,8 @@ public class TestBinaryDocValuesUpdates extends LuceneTestCase {
writer.close();
DirectoryReader reader = DirectoryReader.open(dir);
- LeafReader r = SlowCompositeReaderWrapper.wrap(reader);
- BinaryDocValues f1 = r.getBinaryDocValues("f1");
- BinaryDocValues f2 = r.getBinaryDocValues("f2");
+ BinaryDocValues f1 = MultiDocValues.getBinaryValues(reader, "f1");
+ BinaryDocValues f2 = MultiDocValues.getBinaryValues(reader, "f2");
assertEquals(12L, getValue(f1, 0));
assertEquals(13L, getValue(f2, 0));
assertEquals(17L, getValue(f1, 1));
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java b/lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java
index 1d0ba54..c513093 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestCustomNorms.java
@@ -66,8 +66,8 @@ public class TestCustomNorms extends LuceneTestCase {
}
writer.commit();
writer.close();
- LeafReader open = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir));
- NumericDocValues norms = open.getNormValues(floatTestField);
+ DirectoryReader open = DirectoryReader.open(dir);
+ NumericDocValues norms = MultiDocValues.getNormValues(open, floatTestField);
assertNotNull(norms);
for (int i = 0; i < open.maxDoc(); i++) {
Document document = open.document(i);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java b/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java
index 0034cee..9f3339c 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java
@@ -405,13 +405,8 @@ public class TestDemoParallelLeafReader extends LuceneTestCase {
//TestUtil.checkIndex(dir);
SegmentInfos infos = SegmentInfos.readLatestCommit(dir);
- final LeafReader parLeafReader;
- if (infos.size() == 1) {
- parLeafReader = new SegmentReader(infos.info(0), IOContext.DEFAULT);
- } else {
- // This just means we didn't forceMerge above:
- parLeafReader = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir));
- }
+ assert infos.size() == 1;
+ final LeafReader parLeafReader = new SegmentReader(infos.info(0), IOContext.DEFAULT);
//checkParallelReader(leaf, parLeafReader, schemaGen);
@@ -682,9 +677,7 @@ public class TestDemoParallelLeafReader extends LuceneTestCase {
w.addDocument(newDoc);
}
- if (random().nextBoolean()) {
- w.forceMerge(1);
- }
+ w.forceMerge(1);
w.close();
}
@@ -750,9 +743,7 @@ public class TestDemoParallelLeafReader extends LuceneTestCase {
}
}
- if (random().nextBoolean()) {
- w.forceMerge(1);
- }
+ w.forceMerge(1);
w.close();
}
@@ -845,9 +836,7 @@ public class TestDemoParallelLeafReader extends LuceneTestCase {
}
}
- if (random().nextBoolean()) {
- w.forceMerge(1);
- }
+ w.forceMerge(1);
w.close();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java b/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java
index 24b2c50..8e62094 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java
@@ -761,7 +761,7 @@ public class TestDirectoryReader extends LuceneTestCase {
writer.commit();
DirectoryReader r = DirectoryReader.open(dir);
- LeafReader r1 = getOnlySegmentReader(r);
+ LeafReader r1 = getOnlyLeafReader(r);
assertEquals(26, r1.terms("field").size());
assertEquals(10, r1.terms("number").size());
writer.addDocument(doc);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestDocValues.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestDocValues.java b/lucene/core/src/test/org/apache/lucene/index/TestDocValues.java
index ad4d60c..2266caf 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestDocValues.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestDocValues.java
@@ -41,7 +41,7 @@ public class TestDocValues extends LuceneTestCase {
IndexWriter iw = new IndexWriter(dir, newIndexWriterConfig(null));
iw.addDocument(new Document());
DirectoryReader dr = DirectoryReader.open(iw);
- LeafReader r = getOnlySegmentReader(dr);
+ LeafReader r = getOnlyLeafReader(dr);
// ok
assertNotNull(DocValues.getBinary(r, "bogus"));
@@ -66,7 +66,7 @@ public class TestDocValues extends LuceneTestCase {
doc.add(new StringField("foo", "bar", Field.Store.NO));
iw.addDocument(doc);
DirectoryReader dr = DirectoryReader.open(iw);
- LeafReader r = getOnlySegmentReader(dr);
+ LeafReader r = getOnlyLeafReader(dr);
// errors
expectThrows(IllegalStateException.class, () -> {
@@ -103,7 +103,7 @@ public class TestDocValues extends LuceneTestCase {
doc.add(new NumericDocValuesField("foo", 3));
iw.addDocument(doc);
DirectoryReader dr = DirectoryReader.open(iw);
- LeafReader r = getOnlySegmentReader(dr);
+ LeafReader r = getOnlyLeafReader(dr);
// ok
assertNotNull(DocValues.getNumeric(r, "foo"));
@@ -136,7 +136,7 @@ public class TestDocValues extends LuceneTestCase {
doc.add(new BinaryDocValuesField("foo", new BytesRef("bar")));
iw.addDocument(doc);
DirectoryReader dr = DirectoryReader.open(iw);
- LeafReader r = getOnlySegmentReader(dr);
+ LeafReader r = getOnlyLeafReader(dr);
// ok
assertNotNull(DocValues.getBinary(r, "foo"));
@@ -171,7 +171,7 @@ public class TestDocValues extends LuceneTestCase {
doc.add(new SortedDocValuesField("foo", new BytesRef("bar")));
iw.addDocument(doc);
DirectoryReader dr = DirectoryReader.open(iw);
- LeafReader r = getOnlySegmentReader(dr);
+ LeafReader r = getOnlyLeafReader(dr);
// ok
assertNotNull(DocValues.getBinary(r, "foo"));
@@ -202,7 +202,7 @@ public class TestDocValues extends LuceneTestCase {
doc.add(new SortedSetDocValuesField("foo", new BytesRef("bar")));
iw.addDocument(doc);
DirectoryReader dr = DirectoryReader.open(iw);
- LeafReader r = getOnlySegmentReader(dr);
+ LeafReader r = getOnlyLeafReader(dr);
// ok
assertNotNull(DocValues.getSortedSet(r, "foo"));
@@ -237,7 +237,7 @@ public class TestDocValues extends LuceneTestCase {
doc.add(new SortedNumericDocValuesField("foo", 3));
iw.addDocument(doc);
DirectoryReader dr = DirectoryReader.open(iw);
- LeafReader r = getOnlySegmentReader(dr);
+ LeafReader r = getOnlyLeafReader(dr);
// ok
assertNotNull(DocValues.getSortedNumeric(r, "foo"));
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java b/lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java
index 44b5b75..2e0cbd9 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java
@@ -58,7 +58,7 @@ public class TestDocValuesIndexing extends LuceneTestCase {
doc.add(newStringField("id", "1", Field.Store.YES));
doc.add(new NumericDocValuesField("dv", 1));
w.addDocument(doc);
- IndexReader r1 = w.getReader();
+ DirectoryReader r1 = w.getReader();
w.close();
Directory d2 = newDirectory();
@@ -67,12 +67,12 @@ public class TestDocValuesIndexing extends LuceneTestCase {
doc.add(newStringField("id", "2", Field.Store.YES));
doc.add(new NumericDocValuesField("dv", 2));
w.addDocument(doc);
- IndexReader r2 = w.getReader();
+ DirectoryReader r2 = w.getReader();
w.close();
Directory d3 = newDirectory();
w = new RandomIndexWriter(random(), d3);
- w.addIndexes(SlowCodecReaderWrapper.wrap(SlowCompositeReaderWrapper.wrap(r1)), SlowCodecReaderWrapper.wrap(SlowCompositeReaderWrapper.wrap(r2)));
+ w.addIndexes(SlowCodecReaderWrapper.wrap(getOnlyLeafReader(r1)), SlowCodecReaderWrapper.wrap(getOnlyLeafReader(r2)));
r1.close();
d1.close();
r2.close();
@@ -81,7 +81,7 @@ public class TestDocValuesIndexing extends LuceneTestCase {
w.forceMerge(1);
DirectoryReader r3 = w.getReader();
w.close();
- LeafReader sr = getOnlySegmentReader(r3);
+ LeafReader sr = getOnlyLeafReader(r3);
assertEquals(2, sr.numDocs());
NumericDocValues docValues = sr.getNumericDocValues("dv");
assertNotNull(docValues);
@@ -109,7 +109,7 @@ public class TestDocValuesIndexing extends LuceneTestCase {
DirectoryReader r = w.getReader();
w.close();
- assertEquals(17, DocValues.getNumeric(getOnlySegmentReader(r), "field").get(0));
+ assertEquals(17, DocValues.getNumeric(getOnlyLeafReader(r), "field").get(0));
r.close();
d.close();
}
@@ -130,7 +130,7 @@ public class TestDocValuesIndexing extends LuceneTestCase {
DirectoryReader r = w.getReader();
w.close();
- assertEquals(17, DocValues.getNumeric(getOnlySegmentReader(r), "field").get(0));
+ assertEquals(17, DocValues.getNumeric(getOnlyLeafReader(r), "field").get(0));
r.close();
d.close();
}
@@ -150,7 +150,7 @@ public class TestDocValuesIndexing extends LuceneTestCase {
});
DirectoryReader r = w.getReader();
- assertEquals(17, getOnlySegmentReader(r).getNumericDocValues("field").get(0));
+ assertEquals(17, getOnlyLeafReader(r).getNumericDocValues("field").get(0));
r.close();
w.close();
d.close();
@@ -171,7 +171,7 @@ public class TestDocValuesIndexing extends LuceneTestCase {
w.addDocument(doc);
w.forceMerge(1);
DirectoryReader r = w.getReader();
- BinaryDocValues s = DocValues.getSorted(getOnlySegmentReader(r), "field");
+ BinaryDocValues s = DocValues.getSorted(getOnlyLeafReader(r), "field");
BytesRef bytes1 = s.get(0);
assertEquals(bytes.length, bytes1.length);
@@ -199,19 +199,18 @@ public class TestDocValuesIndexing extends LuceneTestCase {
writer.addDocument(doc);
}
DirectoryReader r = writer.getReader();
- LeafReader slow = SlowCompositeReaderWrapper.wrap(r);
- FieldInfos fi = slow.getFieldInfos();
+ FieldInfos fi = MultiFields.getMergedFieldInfos(r);
FieldInfo dvInfo = fi.fieldInfo("dv");
assertTrue(dvInfo.getDocValuesType() != DocValuesType.NONE);
- NumericDocValues dv = slow.getNumericDocValues("dv");
+ NumericDocValues dv = MultiDocValues.getNumericValues(r, "dv");
for (int i = 0; i < 50; i++) {
assertEquals(i, dv.get(i));
- Document d = slow.document(i);
+ Document d = r.document(i);
// cannot use d.get("dv") due to another bug!
assertNull(d.getField("dv"));
assertEquals(Integer.toString(i), d.get("docId"));
}
- slow.close();
+ r.close();
writer.close();
dir.close();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java b/lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java
index dc49db1..2ef5824 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java
@@ -335,7 +335,7 @@ public class TestDocsAndPositions extends LuceneTestCase {
doc.add(newStringField("foo", "bar", Field.Store.NO));
writer.addDocument(doc);
DirectoryReader reader = writer.getReader();
- LeafReader r = getOnlySegmentReader(reader);
+ LeafReader r = getOnlyLeafReader(reader);
PostingsEnum disi = TestUtil.docs(random(), r, "foo", new BytesRef("bar"), null, PostingsEnum.NONE);
int docid = disi.docID();
assertEquals(-1, docid);
@@ -360,7 +360,7 @@ public class TestDocsAndPositions extends LuceneTestCase {
doc.add(newTextField("foo", "bar", Field.Store.NO));
writer.addDocument(doc);
DirectoryReader reader = writer.getReader();
- LeafReader r = getOnlySegmentReader(reader);
+ LeafReader r = getOnlyLeafReader(reader);
PostingsEnum disi = r.postings(new Term("foo", "bar"), PostingsEnum.ALL);
int docid = disi.docID();
assertEquals(-1, docid);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java b/lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java
index 489a185..a814c4c 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java
@@ -284,7 +284,7 @@ public class TestDocumentWriter extends LuceneTestCase {
TestUtil.checkIndex(dir);
- SegmentReader reader = getOnlySegmentReader(DirectoryReader.open(dir));
+ LeafReader reader = getOnlyLeafReader(DirectoryReader.open(dir));
FieldInfos fi = reader.getFieldInfos();
// f1
assertFalse("f1 should have no norms", fi.fieldInfo("f1").hasNorms());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestDuelingCodecs.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestDuelingCodecs.java b/lucene/core/src/test/org/apache/lucene/index/TestDuelingCodecs.java
index b79e638..62fe28a 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestDuelingCodecs.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestDuelingCodecs.java
@@ -162,8 +162,8 @@ public class TestDuelingCodecs extends LuceneTestCase {
createRandomIndex(numdocs, leftWriter, seed);
createRandomIndex(numdocs, rightWriter, seed);
- leftReader = wrapReader(leftWriter.getReader(), false);
- rightReader = wrapReader(rightWriter.getReader(), false);
+ leftReader = wrapReader(leftWriter.getReader());
+ rightReader = wrapReader(rightWriter.getReader());
// check that our readers are valid
TestUtil.checkReader(leftReader);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestExitableDirectoryReader.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestExitableDirectoryReader.java b/lucene/core/src/test/org/apache/lucene/index/TestExitableDirectoryReader.java
index 36c9e0d..65cf84e 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestExitableDirectoryReader.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestExitableDirectoryReader.java
@@ -78,8 +78,8 @@ public class TestExitableDirectoryReader extends LuceneTestCase {
}
}
- public TestReader(IndexReader reader) throws IOException {
- super(SlowCompositeReaderWrapper.wrap(reader));
+ public TestReader(LeafReader reader) throws IOException {
+ super(reader);
}
@Override
@@ -107,6 +107,7 @@ public class TestExitableDirectoryReader extends LuceneTestCase {
Document d3 = new Document();
d3.add(newTextField("default", "ones two four", Field.Store.YES));
writer.addDocument(d3);
+ writer.forceMerge(1);
writer.commit();
writer.close();
@@ -122,43 +123,39 @@ public class TestExitableDirectoryReader extends LuceneTestCase {
// Not checking the validity of the result, all we are bothered about in this test is the timing out.
directoryReader = DirectoryReader.open(directory);
exitableDirectoryReader = new ExitableDirectoryReader(directoryReader, new QueryTimeoutImpl(1000));
- reader = new TestReader(exitableDirectoryReader);
+ reader = new TestReader(getOnlyLeafReader(exitableDirectoryReader));
searcher = new IndexSearcher(reader);
searcher.search(query, 10);
reader.close();
- exitableDirectoryReader.close();
// Set a really low timeout value (1 millisecond) and expect an Exception
directoryReader = DirectoryReader.open(directory);
exitableDirectoryReader = new ExitableDirectoryReader(directoryReader, new QueryTimeoutImpl(1));
- reader = new TestReader(exitableDirectoryReader);
+ reader = new TestReader(getOnlyLeafReader(exitableDirectoryReader));
IndexSearcher slowSearcher = new IndexSearcher(reader);
expectThrows(ExitingReaderException.class, () -> {
slowSearcher.search(query, 10);
});
reader.close();
- exitableDirectoryReader.close();
// Set maximum time out and expect the query to complete.
// Not checking the validity of the result, all we are bothered about in this test is the timing out.
directoryReader = DirectoryReader.open(directory);
exitableDirectoryReader = new ExitableDirectoryReader(directoryReader, new QueryTimeoutImpl(Long.MAX_VALUE));
- reader = new TestReader(exitableDirectoryReader);
+ reader = new TestReader(getOnlyLeafReader(exitableDirectoryReader));
searcher = new IndexSearcher(reader);
searcher.search(query, 10);
reader.close();
- exitableDirectoryReader.close();
// Set a negative time allowed and expect the query to complete (should disable timeouts)
// Not checking the validity of the result, all we are bothered about in this test is the timing out.
directoryReader = DirectoryReader.open(directory);
exitableDirectoryReader = new ExitableDirectoryReader(directoryReader, new QueryTimeoutImpl(-189034L));
- reader = new TestReader(exitableDirectoryReader);
+ reader = new TestReader(getOnlyLeafReader(exitableDirectoryReader));
searcher = new IndexSearcher(reader);
searcher.search(query, 10);
reader.close();
- exitableDirectoryReader.close();
directory.close();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestFilterLeafReader.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestFilterLeafReader.java b/lucene/core/src/test/org/apache/lucene/index/TestFilterLeafReader.java
index cad47a4..e9f6fe2 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestFilterLeafReader.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestFilterLeafReader.java
@@ -98,8 +98,8 @@ public class TestFilterLeafReader extends LuceneTestCase {
}
}
- public TestReader(IndexReader reader) throws IOException {
- super(SlowCompositeReaderWrapper.wrap(reader));
+ public TestReader(LeafReader reader) throws IOException {
+ super(reader);
}
@Override
@@ -128,7 +128,7 @@ public class TestFilterLeafReader extends LuceneTestCase {
Document d3 = new Document();
d3.add(newTextField("default", "two four", Field.Store.YES));
writer.addDocument(d3);
-
+ writer.forceMerge(1);
writer.close();
Directory target = newDirectory();
@@ -137,7 +137,7 @@ public class TestFilterLeafReader extends LuceneTestCase {
((BaseDirectoryWrapper) target).setCrossCheckTermVectorsOnClose(false);
writer = new IndexWriter(target, newIndexWriterConfig(new MockAnalyzer(random())));
- try (LeafReader reader = new TestReader(DirectoryReader.open(directory))) {
+ try (LeafReader reader = new TestReader(getOnlyLeafReader(DirectoryReader.open(directory)))) {
writer.addIndexes(SlowCodecReaderWrapper.wrap(reader));
}
writer.close();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestFlex.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestFlex.java b/lucene/core/src/test/org/apache/lucene/index/TestFlex.java
index 3d716e1..d91301f 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestFlex.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestFlex.java
@@ -70,7 +70,7 @@ public class TestFlex extends LuceneTestCase {
w.addDocument(doc);
w.forceMerge(1);
DirectoryReader r = w.getReader();
- TermsEnum terms = getOnlySegmentReader(r).fields().terms("f").iterator();
+ TermsEnum terms = getOnlyLeafReader(r).fields().terms("f").iterator();
assertTrue(terms.next() != null);
try {
assertEquals(0, terms.ord());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestIndexReaderClose.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestIndexReaderClose.java b/lucene/core/src/test/org/apache/lucene/index/TestIndexReaderClose.java
index 6b22fd7..91dcb6e 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestIndexReaderClose.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestIndexReaderClose.java
@@ -37,14 +37,15 @@ public class TestIndexReaderClose extends LuceneTestCase {
public void testCloseUnderException() throws IOException {
Directory dir = newDirectory();
IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random(), new MockAnalyzer(random())));
+ writer.addDocument(new Document());
writer.commit();
writer.close();
final int iters = 1000 + 1 + random().nextInt(20);
for (int j = 0; j < iters; j++) {
DirectoryReader open = DirectoryReader.open(dir);
final boolean throwOnClose = !rarely();
- LeafReader wrap = SlowCompositeReaderWrapper.wrap(open);
- FilterLeafReader reader = new FilterLeafReader(wrap) {
+ LeafReader leaf = getOnlyLeafReader(open);
+ FilterLeafReader reader = new FilterLeafReader(leaf) {
@Override
protected void doClose() throws IOException {
super.doClose();
@@ -87,54 +88,10 @@ public class TestIndexReaderClose extends LuceneTestCase {
reader.close(); // call it again
}
assertEquals(0, count.get());
- wrap.close();
}
dir.close();
}
- public void testCoreListenerOnSlowCompositeReaderWrapper() throws IOException {
- RandomIndexWriter w = new RandomIndexWriter(random(), newDirectory());
- final int numDocs = TestUtil.nextInt(random(), 1, 5);
- for (int i = 0; i < numDocs; ++i) {
- w.addDocument(new Document());
- if (random().nextBoolean()) {
- w.commit();
- }
- }
- w.commit();
- w.close();
-
- final IndexReader reader = DirectoryReader.open(w.w.getDirectory());
- final LeafReader leafReader = SlowCompositeReaderWrapper.wrap(reader);
-
- final int numListeners = TestUtil.nextInt(random(), 1, 10);
- final List<LeafReader.CoreClosedListener> listeners = new ArrayList<>();
- AtomicInteger counter = new AtomicInteger(numListeners);
-
- for (int i = 0; i < numListeners; ++i) {
- CountCoreListener listener = new CountCoreListener(counter, leafReader.getCoreCacheKey());
- listeners.add(listener);
- leafReader.addCoreClosedListener(listener);
- }
- for (int i = 0; i < 100; ++i) {
- leafReader.addCoreClosedListener(listeners.get(random().nextInt(listeners.size())));
- }
- final int removed = random().nextInt(numListeners);
- Collections.shuffle(listeners, random());
- for (int i = 0; i < removed; ++i) {
- leafReader.removeCoreClosedListener(listeners.get(i));
- }
- assertEquals(numListeners, counter.get());
- // make sure listeners are registered on the wrapped reader and that closing any of them has the same effect
- if (random().nextBoolean()) {
- reader.close();
- } else {
- leafReader.close();
- }
- assertEquals(removed, counter.get());
- w.w.getDirectory().close();
- }
-
public void testCoreListenerOnWrapperWithDifferentCacheKey() throws IOException {
RandomIndexWriter w = new RandomIndexWriter(random(), newDirectory());
final int numDocs = TestUtil.nextInt(random(), 1, 5);
@@ -144,13 +101,14 @@ public class TestIndexReaderClose extends LuceneTestCase {
w.commit();
}
}
+ w.forceMerge(1);
w.commit();
w.close();
final IndexReader reader = DirectoryReader.open(w.w.getDirectory());
// We explicitly define a different cache key
final Object coreCacheKey = new Object();
- final LeafReader leafReader = new FilterLeafReader(SlowCompositeReaderWrapper.wrap(reader)) {
+ final LeafReader leafReader = new FilterLeafReader(getOnlyLeafReader(reader)) {
@Override
public Object getCoreCacheKey() {
return coreCacheKey;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
index 7461618..2c3543e 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
@@ -692,7 +692,7 @@ public class TestIndexWriter extends LuceneTestCase {
writer.addDocument(doc);
writer.close();
DirectoryReader reader = DirectoryReader.open(dir);
- LeafReader subreader = getOnlySegmentReader(reader);
+ LeafReader subreader = getOnlyLeafReader(reader);
TermsEnum te = subreader.fields().terms("").iterator();
assertEquals(new BytesRef("a"), te.next());
assertEquals(new BytesRef("b"), te.next());
@@ -713,7 +713,7 @@ public class TestIndexWriter extends LuceneTestCase {
writer.addDocument(doc);
writer.close();
DirectoryReader reader = DirectoryReader.open(dir);
- LeafReader subreader = getOnlySegmentReader(reader);
+ LeafReader subreader = getOnlyLeafReader(reader);
TermsEnum te = subreader.fields().terms("").iterator();
assertEquals(new BytesRef(""), te.next());
assertEquals(new BytesRef("a"), te.next());
@@ -2549,7 +2549,7 @@ public class TestIndexWriter extends LuceneTestCase {
w.commit();
w.close();
DirectoryReader r = DirectoryReader.open(d);
- assertEquals(0, getOnlySegmentReader(r).getNormValues("foo").get(0));
+ assertEquals(0, getOnlyLeafReader(r).getNormValues("foo").get(0));
r.close();
d.close();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java b/lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
index a928fd2..ff79e5e 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
@@ -104,7 +104,7 @@ public class TestLazyProxSkipping extends LuceneTestCase {
writer.forceMerge(1);
writer.close();
- SegmentReader reader = getOnlySegmentReader(DirectoryReader.open(directory));
+ LeafReader reader = getOnlyLeafReader(DirectoryReader.open(directory));
this.searcher = newSearcher(reader);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java b/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java
index 121e85c..5b70c38 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java
@@ -56,7 +56,7 @@ public class TestMultiDocValues extends LuceneTestCase {
DirectoryReader ir = iw.getReader();
iw.forceMerge(1);
DirectoryReader ir2 = iw.getReader();
- LeafReader merged = getOnlySegmentReader(ir2);
+ LeafReader merged = getOnlyLeafReader(ir2);
iw.close();
NumericDocValues multi = MultiDocValues.getNumericValues(ir, "numbers");
@@ -91,7 +91,7 @@ public class TestMultiDocValues extends LuceneTestCase {
DirectoryReader ir = iw.getReader();
iw.forceMerge(1);
DirectoryReader ir2 = iw.getReader();
- LeafReader merged = getOnlySegmentReader(ir2);
+ LeafReader merged = getOnlyLeafReader(ir2);
iw.close();
BinaryDocValues multi = MultiDocValues.getBinaryValues(ir, "bytes");
@@ -131,7 +131,7 @@ public class TestMultiDocValues extends LuceneTestCase {
DirectoryReader ir = iw.getReader();
iw.forceMerge(1);
DirectoryReader ir2 = iw.getReader();
- LeafReader merged = getOnlySegmentReader(ir2);
+ LeafReader merged = getOnlyLeafReader(ir2);
iw.close();
SortedDocValues multi = MultiDocValues.getSortedValues(ir, "bytes");
@@ -173,7 +173,7 @@ public class TestMultiDocValues extends LuceneTestCase {
DirectoryReader ir = iw.getReader();
iw.forceMerge(1);
DirectoryReader ir2 = iw.getReader();
- LeafReader merged = getOnlySegmentReader(ir2);
+ LeafReader merged = getOnlyLeafReader(ir2);
iw.close();
SortedDocValues multi = MultiDocValues.getSortedValues(ir, "bytes");
@@ -214,7 +214,7 @@ public class TestMultiDocValues extends LuceneTestCase {
DirectoryReader ir = iw.getReader();
iw.forceMerge(1);
DirectoryReader ir2 = iw.getReader();
- LeafReader merged = getOnlySegmentReader(ir2);
+ LeafReader merged = getOnlyLeafReader(ir2);
iw.close();
SortedSetDocValues multi = MultiDocValues.getSortedSetValues(ir, "bytes");
@@ -276,7 +276,7 @@ public class TestMultiDocValues extends LuceneTestCase {
DirectoryReader ir = iw.getReader();
iw.forceMerge(1);
DirectoryReader ir2 = iw.getReader();
- LeafReader merged = getOnlySegmentReader(ir2);
+ LeafReader merged = getOnlyLeafReader(ir2);
iw.close();
SortedSetDocValues multi = MultiDocValues.getSortedSetValues(ir, "bytes");
@@ -337,7 +337,7 @@ public class TestMultiDocValues extends LuceneTestCase {
DirectoryReader ir = iw.getReader();
iw.forceMerge(1);
DirectoryReader ir2 = iw.getReader();
- LeafReader merged = getOnlySegmentReader(ir2);
+ LeafReader merged = getOnlyLeafReader(ir2);
iw.close();
SortedNumericDocValues multi = MultiDocValues.getSortedNumericValues(ir, "nums");
@@ -388,7 +388,7 @@ public class TestMultiDocValues extends LuceneTestCase {
DirectoryReader ir = iw.getReader();
iw.forceMerge(1);
DirectoryReader ir2 = iw.getReader();
- LeafReader merged = getOnlySegmentReader(ir2);
+ LeafReader merged = getOnlyLeafReader(ir2);
iw.close();
Bits multi = MultiDocValues.getDocsWithField(ir, "numbers");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java b/lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java
index a82444b..bc14cb8 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java
@@ -80,7 +80,7 @@ public class TestMultiLevelSkipList extends LuceneTestCase {
writer.forceMerge(1);
writer.close();
- LeafReader reader = getOnlySegmentReader(DirectoryReader.open(dir));
+ LeafReader reader = getOnlyLeafReader(DirectoryReader.open(dir));
for (int i = 0; i < 2; i++) {
counter = 0;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestNorms.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestNorms.java b/lucene/core/src/test/org/apache/lucene/index/TestNorms.java
index 562cefb..45db69a 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestNorms.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestNorms.java
@@ -111,8 +111,8 @@ public class TestNorms extends LuceneTestCase {
public void testMaxByteNorms() throws IOException {
Directory dir = newFSDirectory(createTempDir("TestNorms.testMaxByteNorms"));
buildIndex(dir);
- LeafReader open = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir));
- NumericDocValues normValues = open.getNormValues(byteTestField);
+ DirectoryReader open = DirectoryReader.open(dir);
+ NumericDocValues normValues = MultiDocValues.getNormValues(open, byteTestField);
assertNotNull(normValues);
for (int i = 0; i < open.maxDoc(); i++) {
Document document = open.document(i);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java b/lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java
index 727f6ff..15ecc0f 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java
@@ -238,16 +238,14 @@ public class TestNumericDocValuesUpdates extends LuceneTestCase {
writer.close();
}
- LeafReader slow = SlowCompositeReaderWrapper.wrap(reader);
-
- Bits liveDocs = slow.getLiveDocs();
+ Bits liveDocs = MultiFields.getLiveDocs(reader);
boolean[] expectedLiveDocs = new boolean[] { true, false, false, true, true, true };
for (int i = 0; i < expectedLiveDocs.length; i++) {
assertEquals(expectedLiveDocs[i], liveDocs.get(i));
}
long[] expectedValues = new long[] { 1, 2, 3, 17, 5, 17};
- NumericDocValues ndv = slow.getNumericDocValues("val");
+ NumericDocValues ndv = MultiDocValues.getNumericValues(reader, "val");
for (int i = 0; i < expectedValues.length; i++) {
assertEquals(expectedValues[i], ndv.get(i));
}
@@ -460,10 +458,9 @@ public class TestNumericDocValuesUpdates extends LuceneTestCase {
final DirectoryReader reader = DirectoryReader.open(dir);
- LeafReader r = SlowCompositeReaderWrapper.wrap(reader);
- NumericDocValues ndv = r.getNumericDocValues("ndv");
- SortedDocValues sdv = r.getSortedDocValues("sorted");
- for (int i = 0; i < r.maxDoc(); i++) {
+ NumericDocValues ndv = MultiDocValues.getNumericValues(reader, "ndv");
+ SortedDocValues sdv = MultiDocValues.getSortedValues(reader, "sorted");
+ for (int i = 0; i < reader.maxDoc(); i++) {
assertEquals(17, ndv.get(i));
final BytesRef term = sdv.get(i);
assertEquals(new BytesRef("value"), term);
@@ -491,9 +488,8 @@ public class TestNumericDocValuesUpdates extends LuceneTestCase {
writer.close();
final DirectoryReader reader = DirectoryReader.open(dir);
- final LeafReader r = SlowCompositeReaderWrapper.wrap(reader);
- NumericDocValues ndv = r.getNumericDocValues("ndv");
- for (int i = 0; i < r.maxDoc(); i++) {
+ NumericDocValues ndv = MultiDocValues.getNumericValues(reader, "ndv");
+ for (int i = 0; i < reader.maxDoc(); i++) {
assertEquals(3, ndv.get(i));
}
reader.close();
@@ -592,9 +588,8 @@ public class TestNumericDocValuesUpdates extends LuceneTestCase {
writer.close();
final DirectoryReader reader = DirectoryReader.open(dir);
- final LeafReader r = SlowCompositeReaderWrapper.wrap(reader);
- NumericDocValues ndv = r.getNumericDocValues("ndv");
- for (int i = 0; i < r.maxDoc(); i++) {
+ NumericDocValues ndv = MultiDocValues.getNumericValues(reader, "ndv");
+ for (int i = 0; i < reader.maxDoc(); i++) {
assertEquals(3, ndv.get(i));
}
reader.close();
@@ -806,7 +801,7 @@ public class TestNumericDocValuesUpdates extends LuceneTestCase {
writer.close();
reader = DirectoryReader.open(dir);
- LeafReader ar = getOnlySegmentReader(reader);
+ LeafReader ar = getOnlyLeafReader(reader);
assertEquals(DocValuesType.NUMERIC, ar.getFieldInfos().fieldInfo("foo").getDocValuesType());
IndexSearcher searcher = new IndexSearcher(reader);
TopFieldDocs td;
@@ -1103,9 +1098,8 @@ public class TestNumericDocValuesUpdates extends LuceneTestCase {
writer.close();
DirectoryReader reader = DirectoryReader.open(dir);
- LeafReader r = SlowCompositeReaderWrapper.wrap(reader);
- NumericDocValues f1 = r.getNumericDocValues("f1");
- NumericDocValues f2 = r.getNumericDocValues("f2");
+ NumericDocValues f1 = MultiDocValues.getNumericValues(reader, "f1");
+ NumericDocValues f2 = MultiDocValues.getNumericValues(reader, "f2");
assertEquals(12L, f1.get(0));
assertEquals(13L, f2.get(0));
assertEquals(17L, f1.get(1));
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java b/lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java
index 83dfd19..bc3c3e8 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestOmitNorms.java
@@ -66,7 +66,7 @@ public class TestOmitNorms extends LuceneTestCase {
// flush
writer.close();
- SegmentReader reader = getOnlySegmentReader(DirectoryReader.open(ram));
+ LeafReader reader = getOnlyLeafReader(DirectoryReader.open(ram));
FieldInfos fi = reader.getFieldInfos();
assertTrue("OmitNorms field bit should be set.", fi.fieldInfo("f1").omitsNorms());
assertTrue("OmitNorms field bit should be set.", fi.fieldInfo("f2").omitsNorms());
@@ -120,7 +120,7 @@ public class TestOmitNorms extends LuceneTestCase {
// flush
writer.close();
- SegmentReader reader = getOnlySegmentReader(DirectoryReader.open(ram));
+ LeafReader reader = getOnlyLeafReader(DirectoryReader.open(ram));
FieldInfos fi = reader.getFieldInfos();
assertTrue("OmitNorms field bit should be set.", fi.fieldInfo("f1").omitsNorms());
assertTrue("OmitNorms field bit should be set.", fi.fieldInfo("f2").omitsNorms());
@@ -168,7 +168,7 @@ public class TestOmitNorms extends LuceneTestCase {
// flush
writer.close();
- SegmentReader reader = getOnlySegmentReader(DirectoryReader.open(ram));
+ LeafReader reader = getOnlyLeafReader(DirectoryReader.open(ram));
FieldInfos fi = reader.getFieldInfos();
assertTrue("OmitNorms field bit should not be set.", !fi.fieldInfo("f1").omitsNorms());
assertTrue("OmitNorms field bit should be set.", fi.fieldInfo("f2").omitsNorms());
@@ -297,7 +297,7 @@ public class TestOmitNorms extends LuceneTestCase {
// fully merge and validate MultiNorms against single segment.
riw.forceMerge(1);
DirectoryReader ir2 = riw.getReader();
- NumericDocValues norms2 = getOnlySegmentReader(ir2).getNormValues(field);
+ NumericDocValues norms2 = getOnlyLeafReader(ir2).getNormValues(field);
if (norms1 == null) {
assertNull(norms2);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java b/lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java
index 38c7251..f5a74b5 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestOmitPositions.java
@@ -153,7 +153,7 @@ public class TestOmitPositions extends LuceneTestCase {
// flush
writer.close();
- SegmentReader reader = getOnlySegmentReader(DirectoryReader.open(ram));
+ LeafReader reader = getOnlyLeafReader(DirectoryReader.open(ram));
FieldInfos fi = reader.getFieldInfos();
// docs + docs = docs
assertEquals(IndexOptions.DOCS, fi.fieldInfo("f1").getIndexOptions());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java b/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java
index 807c704..3c12a0d 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestOmitTf.java
@@ -105,7 +105,7 @@ public class TestOmitTf extends LuceneTestCase {
// flush
writer.close();
- SegmentReader reader = getOnlySegmentReader(DirectoryReader.open(ram));
+ LeafReader reader = getOnlyLeafReader(DirectoryReader.open(ram));
FieldInfos fi = reader.getFieldInfos();
assertEquals("OmitTermFreqAndPositions field bit should be set.", IndexOptions.DOCS, fi.fieldInfo("f1").getIndexOptions());
assertEquals("OmitTermFreqAndPositions field bit should be set.", IndexOptions.DOCS, fi.fieldInfo("f2").getIndexOptions());
@@ -157,7 +157,7 @@ public class TestOmitTf extends LuceneTestCase {
// flush
writer.close();
- SegmentReader reader = getOnlySegmentReader(DirectoryReader.open(ram));
+ LeafReader reader = getOnlyLeafReader(DirectoryReader.open(ram));
FieldInfos fi = reader.getFieldInfos();
assertEquals("OmitTermFreqAndPositions field bit should be set.", IndexOptions.DOCS, fi.fieldInfo("f1").getIndexOptions());
assertEquals("OmitTermFreqAndPositions field bit should be set.", IndexOptions.DOCS, fi.fieldInfo("f2").getIndexOptions());
@@ -200,7 +200,7 @@ public class TestOmitTf extends LuceneTestCase {
// flush
writer.close();
- SegmentReader reader = getOnlySegmentReader(DirectoryReader.open(ram));
+ LeafReader reader = getOnlyLeafReader(DirectoryReader.open(ram));
FieldInfos fi = reader.getFieldInfos();
assertEquals("OmitTermFreqAndPositions field bit should not be set.", IndexOptions.DOCS_AND_FREQS_AND_POSITIONS, fi.fieldInfo("f1").getIndexOptions());
assertEquals("OmitTermFreqAndPositions field bit should be set.", IndexOptions.DOCS, fi.fieldInfo("f2").getIndexOptions());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestOrdinalMap.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestOrdinalMap.java b/lucene/core/src/test/org/apache/lucene/index/TestOrdinalMap.java
index e0fab18..1f9ff11 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestOrdinalMap.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestOrdinalMap.java
@@ -83,13 +83,12 @@ public class TestOrdinalMap extends LuceneTestCase {
}
iw.commit();
DirectoryReader r = iw.getReader();
- LeafReader ar = SlowCompositeReaderWrapper.wrap(r);
- SortedDocValues sdv = ar.getSortedDocValues("sdv");
+ SortedDocValues sdv = MultiDocValues.getSortedValues(r, "sdv");
if (sdv instanceof MultiSortedDocValues) {
OrdinalMap map = ((MultiSortedDocValues) sdv).mapping;
assertEquals(RamUsageTester.sizeOf(map, ORDINAL_MAP_ACCUMULATOR), map.ramBytesUsed());
}
- SortedSetDocValues ssdv = ar.getSortedSetDocValues("ssdv");
+ SortedSetDocValues ssdv = MultiDocValues.getSortedSetValues(r, "ssdv");
if (ssdv instanceof MultiSortedSetDocValues) {
OrdinalMap map = ((MultiSortedSetDocValues) ssdv).mapping;
assertEquals(RamUsageTester.sizeOf(map, ORDINAL_MAP_ACCUMULATOR), map.ramBytesUsed());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java b/lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java
index 7078380..166c9e4d 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java
@@ -18,6 +18,8 @@ package org.apache.lucene.index;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Random;
import org.apache.lucene.analysis.MockAnalyzer;
@@ -276,32 +278,6 @@ public class TestParallelCompositeReader extends LuceneTestCase {
dir2.close();
}
- public void testIncompatibleIndexes3() throws IOException {
- Directory dir1 = getDir1(random());
- Directory dir2 = getDir2(random());
-
- CompositeReader ir1 = new MultiReader(DirectoryReader.open(dir1), SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir1))),
- ir2 = new MultiReader(DirectoryReader.open(dir2), DirectoryReader.open(dir2));
- CompositeReader[] readers = new CompositeReader[] {ir1, ir2};
-
- expectThrows(IllegalArgumentException.class, () -> {
- new ParallelCompositeReader(readers);
- });
-
- expectThrows(IllegalArgumentException.class, () -> {
- new ParallelCompositeReader(random().nextBoolean(), readers, readers);
- });
-
- assertEquals(1, ir1.getRefCount());
- assertEquals(1, ir2.getRefCount());
- ir1.close();
- ir2.close();
- assertEquals(0, ir1.getRefCount());
- assertEquals(0, ir2.getRefCount());
- dir1.close();
- dir2.close();
- }
-
public void testIgnoreStoredFields() throws IOException {
Directory dir1 = getDir1(random());
Directory dir2 = getDir2(random());
@@ -317,7 +293,7 @@ public class TestParallelCompositeReader extends LuceneTestCase {
assertNull(pr.document(0).get("f3"));
assertNull(pr.document(0).get("f4"));
// check that fields are there
- LeafReader slow = SlowCompositeReaderWrapper.wrap(pr);
+ Fields slow = MultiFields.getFields(pr);
assertNotNull(slow.terms("f1"));
assertNotNull(slow.terms("f2"));
assertNotNull(slow.terms("f3"));
@@ -333,7 +309,7 @@ public class TestParallelCompositeReader extends LuceneTestCase {
assertNull(pr.document(0).get("f3"));
assertNull(pr.document(0).get("f4"));
// check that fields are there
- slow = SlowCompositeReaderWrapper.wrap(pr);
+ slow = MultiFields.getFields(pr);
assertNull(slow.terms("f1"));
assertNull(slow.terms("f2"));
assertNotNull(slow.terms("f3"));
@@ -349,7 +325,7 @@ public class TestParallelCompositeReader extends LuceneTestCase {
assertNull(pr.document(0).get("f3"));
assertNull(pr.document(0).get("f4"));
// check that fields are there
- slow = SlowCompositeReaderWrapper.wrap(pr);
+ slow = MultiFields.getFields(pr);
assertNull(slow.terms("f1"));
assertNull(slow.terms("f2"));
assertNotNull(slow.terms("f3"));
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestParallelLeafReader.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestParallelLeafReader.java b/lucene/core/src/test/org/apache/lucene/index/TestParallelLeafReader.java
index 31aa603..f7f401f 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestParallelLeafReader.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestParallelLeafReader.java
@@ -63,8 +63,8 @@ public class TestParallelLeafReader extends LuceneTestCase {
public void testFieldNames() throws Exception {
Directory dir1 = getDir1(random());
Directory dir2 = getDir2(random());
- ParallelLeafReader pr = new ParallelLeafReader(SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir1)),
- SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir2)));
+ ParallelLeafReader pr = new ParallelLeafReader(getOnlyLeafReader(DirectoryReader.open(dir1)),
+ getOnlyLeafReader(DirectoryReader.open(dir2)));
FieldInfos fieldInfos = pr.getFieldInfos();
assertEquals(4, fieldInfos.size());
assertNotNull(fieldInfos.fieldInfo("f1"));
@@ -81,8 +81,8 @@ public class TestParallelLeafReader extends LuceneTestCase {
Directory dir2 = getDir2(random());
LeafReader ir1, ir2;
// close subreaders, ParallelReader will not change refCounts, but close on its own close
- ParallelLeafReader pr = new ParallelLeafReader(ir1 = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir1)),
- ir2 = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir2)));
+ ParallelLeafReader pr = new ParallelLeafReader(ir1 = getOnlyLeafReader(DirectoryReader.open(dir1)),
+ ir2 = getOnlyLeafReader(DirectoryReader.open(dir2)));
// check RefCounts
assertEquals(1, ir1.getRefCount());
@@ -97,8 +97,8 @@ public class TestParallelLeafReader extends LuceneTestCase {
public void testRefCounts2() throws IOException {
Directory dir1 = getDir1(random());
Directory dir2 = getDir2(random());
- LeafReader ir1 = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir1));
- LeafReader ir2 = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir2));
+ LeafReader ir1 = getOnlyLeafReader(DirectoryReader.open(dir1));
+ LeafReader ir2 = getOnlyLeafReader(DirectoryReader.open(dir2));
// don't close subreaders, so ParallelReader will increment refcounts
ParallelLeafReader pr = new ParallelLeafReader(false, ir1, ir2);
// check RefCounts
@@ -117,7 +117,7 @@ public class TestParallelLeafReader extends LuceneTestCase {
public void testCloseInnerReader() throws Exception {
Directory dir1 = getDir1(random());
- LeafReader ir1 = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir1));
+ LeafReader ir1 = getOnlyLeafReader(DirectoryReader.open(dir1));
// with overlapping
ParallelLeafReader pr = new ParallelLeafReader(true,
@@ -149,8 +149,8 @@ public class TestParallelLeafReader extends LuceneTestCase {
w2.addDocument(d3);
w2.close();
- LeafReader ir1 = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir1));
- LeafReader ir2 = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir2));
+ LeafReader ir1 = getOnlyLeafReader(DirectoryReader.open(dir1));
+ LeafReader ir2 = getOnlyLeafReader(DirectoryReader.open(dir2));
// indexes don't have the same number of documents
expectThrows(IllegalArgumentException.class, () -> {
@@ -175,8 +175,8 @@ public class TestParallelLeafReader extends LuceneTestCase {
public void testIgnoreStoredFields() throws IOException {
Directory dir1 = getDir1(random());
Directory dir2 = getDir2(random());
- LeafReader ir1 = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir1));
- LeafReader ir2 = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir2));
+ LeafReader ir1 = getOnlyLeafReader(DirectoryReader.open(dir1));
+ LeafReader ir2 = getOnlyLeafReader(DirectoryReader.open(dir2));
// with overlapping
ParallelLeafReader pr = new ParallelLeafReader(false,
@@ -276,8 +276,8 @@ public class TestParallelLeafReader extends LuceneTestCase {
dir1 = getDir1(random);
dir2 = getDir2(random);
ParallelLeafReader pr = new ParallelLeafReader(
- SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir1)),
- SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir2)));
+ getOnlyLeafReader(DirectoryReader.open(dir1)),
+ getOnlyLeafReader(DirectoryReader.open(dir2)));
TestUtil.checkReader(pr);
return newSearcher(pr);
}
@@ -293,6 +293,7 @@ public class TestParallelLeafReader extends LuceneTestCase {
d2.add(newTextField("f1", "v2", Field.Store.YES));
d2.add(newTextField("f2", "v2", Field.Store.YES));
w1.addDocument(d2);
+ w1.forceMerge(1);
w1.close();
return dir1;
}
@@ -308,6 +309,7 @@ public class TestParallelLeafReader extends LuceneTestCase {
d4.add(newTextField("f3", "v2", Field.Store.YES));
d4.add(newTextField("f4", "v2", Field.Store.YES));
w2.addDocument(d4);
+ w2.forceMerge(1);
w2.close();
return dir2;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java b/lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java
index 373a125..61c84dc 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java
@@ -50,15 +50,7 @@ public class TestParallelReaderEmptyIndex extends LuceneTestCase {
IndexWriter iwOut = new IndexWriter(rdOut, newIndexWriterConfig(new MockAnalyzer(random())));
- ParallelLeafReader apr = new ParallelLeafReader(
- SlowCompositeReaderWrapper.wrap(DirectoryReader.open(rd1)),
- SlowCompositeReaderWrapper.wrap(DirectoryReader.open(rd2)));
-
- // When unpatched, Lucene crashes here with a NoSuchElementException (caused by ParallelTermEnum)
- iwOut.addIndexes(SlowCodecReaderWrapper.wrap(apr));
- iwOut.forceMerge(1);
-
- // 2nd try with a readerless parallel reader
+ // add a readerless parallel reader
iwOut.addIndexes(SlowCodecReaderWrapper.wrap(new ParallelLeafReader()));
iwOut.forceMerge(1);
@@ -136,16 +128,18 @@ public class TestParallelReaderEmptyIndex extends LuceneTestCase {
Directory rdOut = newDirectory();
IndexWriter iwOut = new IndexWriter(rdOut, newIndexWriterConfig(new MockAnalyzer(random())));
- final DirectoryReader reader1, reader2;
- ParallelLeafReader pr = new ParallelLeafReader(
- SlowCompositeReaderWrapper.wrap(reader1 = DirectoryReader.open(rd1)),
- SlowCompositeReaderWrapper.wrap(reader2 = DirectoryReader.open(rd2)));
+ DirectoryReader reader1 = DirectoryReader.open(rd1);
+ DirectoryReader reader2 = DirectoryReader.open(rd2);
+ ParallelLeafReader pr = new ParallelLeafReader(false,
+ getOnlyLeafReader(reader1),
+ getOnlyLeafReader(reader2));
// When unpatched, Lucene crashes here with an ArrayIndexOutOfBoundsException (caused by TermVectorsWriter)
iwOut.addIndexes(SlowCodecReaderWrapper.wrap(pr));
- // ParallelReader closes any IndexReader you added to it:
pr.close();
+ reader1.close();
+ reader2.close();
// assert subreaders were closed
assertEquals(0, reader1.getRefCount());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7523ca11/lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java b/lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java
index c51fd2d..a83c549 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java
@@ -59,8 +59,8 @@ public class TestParallelTermEnum extends LuceneTestCase {
iw2.close();
- this.ir1 = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(rd1));
- this.ir2 = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(rd2));
+ this.ir1 = getOnlyLeafReader(DirectoryReader.open(rd1));
+ this.ir2 = getOnlyLeafReader(DirectoryReader.open(rd2));
}
@Override