You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2016/09/21 13:42:20 UTC
[16/16] lucene-solr:master: LUCENE-7407: switch doc values usage to
an iterator API, based on DocIdSetIterator, instead of random acces,
freeing codecs for future improvements
LUCENE-7407: switch doc values usage to an iterator API, based on DocIdSetIterator, instead of random acces, freeing codecs for future improvements
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/f7aa200d
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/f7aa200d
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/f7aa200d
Branch: refs/heads/master
Commit: f7aa200d406dbd05a35d6116198302d90b92cb29
Parents: 93bc88d
Author: Mike McCandless <mi...@apache.org>
Authored: Wed Sep 21 09:41:41 2016 -0400
Committer: Mike McCandless <mi...@apache.org>
Committed: Wed Sep 21 09:41:41 2016 -0400
----------------------------------------------------------------------
lucene/CHANGES.txt | 4 +
.../collation/TestCollationDocValuesField.java | 3 +-
.../TestICUCollationDocValuesField.java | 3 +-
.../index/TestBackwardsCompatibility.java | 61 +-
.../codecs/memory/DirectDocValuesConsumer.java | 33 +-
.../codecs/memory/DirectDocValuesProducer.java | 100 +-
.../codecs/memory/MemoryDocValuesConsumer.java | 45 +-
.../codecs/memory/MemoryDocValuesProducer.java | 104 +-
.../simpletext/SimpleTextDocValuesReader.java | 64 +-
.../simpletext/SimpleTextDocValuesWriter.java | 31 +-
.../simpletext/SimpleTextNormsFormat.java | 9 +-
.../apache/lucene/codecs/DocValuesConsumer.java | 1069 ++++++++----------
.../apache/lucene/codecs/DocValuesProducer.java | 7 -
.../lucene/codecs/LegacyDocValuesIterables.java | 514 +++++++++
.../org/apache/lucene/codecs/NormsConsumer.java | 133 +--
.../codecs/lucene53/Lucene53NormsConsumer.java | 8 +-
.../codecs/lucene53/Lucene53NormsProducer.java | 47 +-
.../lucene54/Lucene54DocValuesConsumer.java | 41 +-
.../lucene54/Lucene54DocValuesProducer.java | 345 ++++--
.../lucene/codecs/lucene54/package-info.java | 2 +-
.../perfield/PerFieldDocValuesFormat.java | 28 +-
.../lucene/document/BinaryDocValuesField.java | 1 -
.../apache/lucene/index/BinaryDocValues.java | 19 +-
.../lucene/index/BinaryDocValuesWriter.java | 80 +-
.../org/apache/lucene/index/CheckIndex.java | 178 ++-
.../org/apache/lucene/index/CodecReader.java | 151 +--
.../org/apache/lucene/index/DocIDMerger.java | 11 +-
.../java/org/apache/lucene/index/DocValues.java | 327 ++++--
.../lucene/index/EmptyDocValuesProducer.java | 71 ++
.../lucene/index/FilterBinaryDocValues.java | 61 +
.../apache/lucene/index/FilterLeafReader.java | 6 -
.../lucene/index/FilterNumericDocValues.java | 59 +
.../org/apache/lucene/index/LeafReader.java | 13 +-
.../lucene/index/LegacyBinaryDocValues.java | 39 +
.../index/LegacyBinaryDocValuesWrapper.java | 82 ++
.../lucene/index/LegacyNumericDocValues.java | 38 +
.../index/LegacyNumericDocValuesWrapper.java | 92 ++
.../lucene/index/LegacySortedDocValues.java | 110 ++
.../index/LegacySortedDocValuesWrapper.java | 92 ++
.../index/LegacySortedNumericDocValues.java | 49 +
.../LegacySortedNumericDocValuesWrapper.java | 88 ++
.../lucene/index/LegacySortedSetDocValues.java | 109 ++
.../index/LegacySortedSetDocValuesWrapper.java | 102 ++
.../apache/lucene/index/MergeReaderWrapper.java | 15 -
.../org/apache/lucene/index/MultiDocValues.java | 642 ++++++++---
.../org/apache/lucene/index/MultiSorter.java | 339 +++---
.../apache/lucene/index/NormValuesWriter.java | 69 +-
.../apache/lucene/index/NumericDocValues.java | 9 +-
.../index/NumericDocValuesFieldUpdates.java | 3 +-
.../lucene/index/NumericDocValuesWriter.java | 65 +-
.../apache/lucene/index/ParallelLeafReader.java | 9 +-
.../apache/lucene/index/RandomAccessOrds.java | 53 -
.../apache/lucene/index/ReadersAndUpdates.java | 216 ++--
.../lucene/index/SegmentDocValuesProducer.java | 8 -
.../org/apache/lucene/index/SegmentReader.java | 12 +-
.../index/SingletonSortedNumericDocValues.java | 55 +-
.../index/SingletonSortedSetDocValues.java | 47 +-
.../lucene/index/SlowCodecReaderWrapper.java | 7 +-
.../apache/lucene/index/SortedDocValues.java | 30 +-
.../lucene/index/SortedDocValuesWriter.java | 112 +-
.../lucene/index/SortedNumericDocValues.java | 21 +-
.../index/SortedNumericDocValuesWriter.java | 103 +-
.../apache/lucene/index/SortedSetDocValues.java | 22 +-
.../lucene/index/SortedSetDocValuesWriter.java | 191 ++--
.../java/org/apache/lucene/index/Sorter.java | 204 +++-
.../apache/lucene/index/SortingLeafReader.java | 460 ++++++--
.../lucene/search/DocValuesRewriteMethod.java | 18 +-
.../apache/lucene/search/ExactPhraseScorer.java | 2 +-
.../apache/lucene/search/FieldComparator.java | 288 ++---
.../apache/lucene/search/FieldValueQuery.java | 45 +-
.../lucene/search/SloppyPhraseScorer.java | 2 +-
.../lucene/search/SortedNumericSelector.java | 101 +-
.../lucene/search/SortedNumericSortField.java | 2 +-
.../apache/lucene/search/SortedSetSelector.java | 249 +++-
.../lucene/search/SortedSetSortField.java | 5 +-
.../org/apache/lucene/search/package-info.java | 2 +-
.../search/similarities/BM25Similarity.java | 31 +-
.../search/similarities/MultiSimilarity.java | 4 +-
.../lucene/search/similarities/Similarity.java | 4 +-
.../search/similarities/SimilarityBase.java | 26 +-
.../search/similarities/TFIDFSimilarity.java | 35 +-
.../src/java/org/apache/lucene/util/Bits.java | 4 +-
.../java/org/apache/lucene/util/LongValues.java | 11 +-
.../apache/lucene/util/packed/PackedInts.java | 4 +-
.../lucene54/TestLucene54DocValuesFormat.java | 82 +-
.../perfield/TestPerFieldDocValuesFormat.java | 10 +-
.../lucene/index/Test2BBinaryDocValues.java | 6 +-
.../lucene/index/Test2BNumericDocValues.java | 3 +-
.../index/Test2BSortedDocValuesFixedSorted.java | 5 +-
.../lucene/index/Test2BSortedDocValuesOrds.java | 5 +-
.../index/TestBinaryDocValuesUpdates.java | 139 ++-
.../apache/lucene/index/TestCustomNorms.java | 3 +-
.../index/TestDemoParallelLeafReader.java | 58 +-
.../lucene/index/TestDirectoryReader.java | 11 +-
.../lucene/index/TestDirectoryReaderReopen.java | 23 +-
.../org/apache/lucene/index/TestDocValues.java | 11 +-
.../lucene/index/TestDocValuesIndexing.java | 28 +-
.../apache/lucene/index/TestIndexSorting.java | 171 +--
.../apache/lucene/index/TestIndexWriter.java | 4 +-
.../lucene/index/TestIndexWriterExceptions.java | 8 +-
.../index/TestIndexingSequenceNumbers.java | 6 +-
.../lucene/index/TestMaxTermFrequency.java | 3 +-
.../lucene/index/TestMixedDocValuesUpdates.java | 26 +-
.../apache/lucene/index/TestMultiDocValues.java | 142 ++-
.../test/org/apache/lucene/index/TestNorms.java | 9 +-
.../index/TestNumericDocValuesUpdates.java | 139 ++-
.../org/apache/lucene/index/TestOmitNorms.java | 19 +-
.../org/apache/lucene/index/TestOrdinalMap.java | 10 +-
.../lucene/index/TestPostingsOffsets.java | 20 +-
.../org/apache/lucene/index/TestTermsEnum.java | 9 +-
.../lucene/index/TestUniqueTermCount.java | 3 +-
.../lucene/search/TestDocValuesScoring.java | 26 +-
.../lucene/search/TestElevationComparator.java | 20 +-
.../lucene/search/TestMinShouldMatch2.java | 7 +-
.../apache/lucene/search/TestPointQueries.java | 13 +-
.../lucene/search/TestSimilarityProvider.java | 4 +-
.../apache/lucene/search/TestSortRandom.java | 3 +-
.../lucene/util/packed/TestDirectPacked.java | 6 +-
.../lucene/expressions/SimpleBindings.java | 2 +-
.../expressions/js/JavascriptCompiler.java | 2 +-
.../expressions/TestExpressionValueSource.java | 1 +
.../DefaultSortedSetDocValuesReaderState.java | 8 +-
.../SortedSetDocValuesFacetCounts.java | 54 +-
.../facet/taxonomy/DocValuesOrdinalsReader.java | 19 +-
.../facet/taxonomy/FastTaxonomyFacetCounts.java | 35 +-
.../taxonomy/OrdinalMappingLeafReader.java | 18 +-
.../facet/taxonomy/TaxonomyFacetCounts.java | 2 +-
.../TaxonomyFacetSumFloatAssociations.java | 39 +-
.../TaxonomyFacetSumIntAssociations.java | 39 +-
.../lucene/facet/TestMultipleIndexFields.java | 2 +-
.../taxonomy/TestOrdinalMappingLeafReader.java | 6 +-
.../AbstractFirstPassGroupingCollector.java | 2 +-
.../FunctionFirstPassGroupingCollector.java | 2 +-
.../term/TermAllGroupHeadsCollector.java | 170 ++-
.../grouping/term/TermAllGroupsCollector.java | 22 +-
.../term/TermDistinctValuesCollector.java | 37 +-
.../term/TermFirstPassGroupingCollector.java | 16 +-
.../grouping/term/TermGroupFacetCollector.java | 61 +-
.../term/TermSecondPassGroupingCollector.java | 17 +-
.../grouping/AllGroupHeadsCollectorTest.java | 11 +-
.../lucene/search/grouping/TestGrouping.java | 41 +-
.../search/highlight/TermVectorLeafReader.java | 5 -
.../highlight/WeightedSpanTermExtractor.java | 7 +-
.../search/join/BaseGlobalOrdinalScorer.java | 6 +-
.../lucene/search/join/BlockJoinSelector.java | 196 +++-
.../search/join/DocValuesTermsCollector.java | 5 +-
.../search/join/GenericTermsCollector.java | 30 +-
.../search/join/GlobalOrdinalsCollector.java | 21 +-
.../lucene/search/join/GlobalOrdinalsQuery.java | 21 +-
.../join/GlobalOrdinalsWithScoreCollector.java | 36 +-
.../join/GlobalOrdinalsWithScoreQuery.java | 30 +-
.../org/apache/lucene/search/join/JoinUtil.java | 44 +-
.../lucene/search/join/TermsCollector.java | 23 +-
.../search/join/TermsWithScoreCollector.java | 89 +-
.../search/join/ToParentBlockJoinSortField.java | 54 +-
.../search/join/TestBlockJoinSelector.java | 197 +++-
.../search/join/TestBlockJoinSorting.java | 9 +-
.../apache/lucene/search/join/TestJoinUtil.java | 51 +-
.../apache/lucene/index/memory/MemoryIndex.java | 88 +-
.../lucene/index/memory/TestMemoryIndex.java | 42 +-
.../memory/TestMemoryIndexAgainstRAMDir.java | 58 +-
.../search/DiversifiedTopDocsCollector.java | 14 +-
.../search/TestDiversifiedTopDocsCollector.java | 70 +-
.../lucene/queries/function/FunctionValues.java | 60 +-
.../lucene/queries/function/ValueSource.java | 10 +-
.../queries/function/ValueSourceScorer.java | 2 +-
.../function/docvalues/BoolDocValues.java | 24 +-
.../docvalues/DocTermsIndexDocValues.java | 78 +-
.../function/docvalues/DoubleDocValues.java | 32 +-
.../function/docvalues/FloatDocValues.java | 22 +-
.../function/docvalues/IntDocValues.java | 24 +-
.../function/docvalues/LongDocValues.java | 26 +-
.../function/docvalues/StrDocValues.java | 12 +-
.../valuesource/BytesRefFieldSource.java | 56 +-
.../valuesource/ComparisonBoolFunction.java | 8 +-
.../function/valuesource/DefFunction.java | 26 +-
.../function/valuesource/DivFloatFunction.java | 4 +-
.../function/valuesource/DoubleFieldSource.java | 43 +-
.../function/valuesource/DualFloatFunction.java | 8 +-
.../function/valuesource/EnumFieldSource.java | 37 +-
.../function/valuesource/FloatFieldSource.java | 40 +-
.../function/valuesource/IfFunction.java | 24 +-
.../function/valuesource/IntFieldSource.java | 40 +-
.../valuesource/JoinDocFreqValueSource.java | 27 +-
.../valuesource/LinearFloatFunction.java | 6 +-
.../function/valuesource/LongFieldSource.java | 56 +-
.../function/valuesource/MaxFloatFunction.java | 6 +-
.../function/valuesource/MinFloatFunction.java | 6 +-
.../function/valuesource/MultiBoolFunction.java | 6 +-
.../valuesource/MultiFloatFunction.java | 10 +-
.../function/valuesource/MultiFunction.java | 13 +-
.../function/valuesource/NormValueSource.java | 23 +-
.../function/valuesource/PowFloatFunction.java | 4 +-
.../valuesource/ProductFloatFunction.java | 4 +-
.../valuesource/RangeMapFloatFunction.java | 4 +-
.../valuesource/ReciprocalFloatFunction.java | 6 +-
.../valuesource/ScaleFloatFunction.java | 6 +-
.../valuesource/SimpleBoolFunction.java | 6 +-
.../valuesource/SimpleFloatFunction.java | 6 +-
.../valuesource/SortedSetFieldSource.java | 6 +-
.../function/valuesource/SumFloatFunction.java | 6 +-
.../function/valuesource/VectorValueSource.java | 33 +-
.../lucene/queries/TestCustomScoreQuery.java | 11 +-
.../queries/function/TestValueSources.java | 4 +-
.../document/LatLonPointDistanceComparator.java | 58 +-
.../lucene/search/DocValuesNumbersQuery.java | 31 +-
.../lucene/search/DocValuesRangeQuery.java | 36 +-
.../lucene/search/DocValuesTermsQuery.java | 16 +-
.../lucene/search/TermAutomatonScorer.java | 2 +-
.../search/BaseRangeFieldQueryTestCase.java | 5 +-
.../spatial/bbox/BBoxSimilarityValueSource.java | 9 +-
.../lucene/spatial/bbox/BBoxValueSource.java | 54 +-
.../serialized/SerializedDVStrategy.java | 35 +-
.../spatial/util/CachingDoubleValueSource.java | 6 +-
.../util/DistanceToShapeValueSource.java | 4 +-
.../spatial/util/ShapeAreaValueSource.java | 6 +-
.../spatial/util/ShapePredicateValueSource.java | 4 +-
.../spatial/vector/DistanceValueSource.java | 33 +-
.../GeoPointTermQueryConstantScoreWrapper.java | 16 +-
.../spatial3d/Geo3DPointDistanceComparator.java | 43 +-
.../Geo3DPointOutsideDistanceComparator.java | 41 +-
.../apache/lucene/spatial3d/TestGeo3DPoint.java | 7 +-
.../search/suggest/DocumentDictionary.java | 12 +-
.../suggest/DocumentValueSourceDictionary.java | 8 +-
.../analyzing/AnalyzingInfixSuggester.java | 31 +-
.../analyzing/BlendedInfixSuggester.java | 26 +-
.../document/TestPrefixCompletionQuery.java | 33 +-
.../asserting/AssertingDocValuesFormat.java | 173 ++-
.../asserting/AssertingLiveDocsFormat.java | 2 +-
.../codecs/asserting/AssertingNormsFormat.java | 22 +-
.../codecs/cranky/CrankyDocValuesFormat.java | 21 +-
.../lucene/codecs/cranky/CrankyNormsFormat.java | 4 +-
.../apache/lucene/geo/BaseGeoPointTestCase.java | 21 +-
.../lucene/index/AssertingLeafReader.java | 356 +++---
.../index/BaseDocValuesFormatTestCase.java | 724 ++++++------
.../index/BaseIndexFileFormatTestCase.java | 101 +-
.../lucene/index/BaseNormsFormatTestCase.java | 14 +-
.../lucene/index/BasePointsFormatTestCase.java | 26 +-
.../index/BaseStoredFieldsFormatTestCase.java | 3 +-
.../lucene/index/FieldFilterLeafReader.java | 13 -
.../org/apache/lucene/search/QueryUtils.java | 11 +-
.../org/apache/lucene/util/LuceneTestCase.java | 77 +-
.../java/org/apache/lucene/util/TestUtil.java | 3 +-
.../facet/FieldFacetAccumulator.java | 44 +-
.../AbstractDelegatingStatsCollector.java | 2 +-
.../statistics/MedianStatsCollector.java | 3 +-
.../statistics/MinMaxStatsCollector.java | 2 +-
.../statistics/NumericStatsCollector.java | 3 +-
.../statistics/PercentileStatsCollector.java | 3 +-
.../analytics/statistics/StatsCollector.java | 2 +-
.../statistics/UniqueStatsCollector.java | 3 +-
.../AbsoluteValueDoubleFunction.java | 4 +-
.../util/valuesource/AddDoubleFunction.java | 4 +-
.../util/valuesource/ConcatStringFunction.java | 4 +-
.../util/valuesource/DateFieldSource.java | 36 +-
.../util/valuesource/DateMathFunction.java | 3 +-
.../util/valuesource/DivDoubleFunction.java | 4 +-
.../util/valuesource/DualDoubleFunction.java | 8 +-
.../util/valuesource/FilterFieldSource.java | 22 +-
.../util/valuesource/LogDoubleFunction.java | 4 +-
.../util/valuesource/MultiDateFunction.java | 10 +-
.../util/valuesource/MultiDoubleFunction.java | 8 +-
.../util/valuesource/MultiStringFunction.java | 12 +-
.../valuesource/MultiplyDoubleFunction.java | 4 +-
.../util/valuesource/NegateDoubleFunction.java | 4 +-
.../util/valuesource/PowDoubleFunction.java | 4 +-
.../util/valuesource/ReverseStringFunction.java | 4 +-
.../util/valuesource/SingleDoubleFunction.java | 8 +-
.../util/valuesource/SingleStringFunction.java | 14 +-
.../solr/handler/component/ExpandComponent.java | 68 +-
.../solr/handler/component/FieldFacetStats.java | 22 +-
.../solr/handler/component/StatsValues.java | 2 +-
.../handler/component/StatsValuesFactory.java | 8 +-
.../solr/index/SlowCompositeReaderWrapper.java | 39 +-
.../apache/solr/request/DocValuesFacets.java | 70 +-
.../org/apache/solr/request/DocValuesStats.java | 48 +-
.../org/apache/solr/request/IntervalFacets.java | 58 +-
.../org/apache/solr/request/NumericFacets.java | 31 +-
.../request/PerSegmentSingleValuedFaceting.java | 40 +-
.../solr/response/SortingResponseWriter.java | 151 ++-
.../transform/ValueSourceAugmenter.java | 8 +-
.../java/org/apache/solr/schema/BoolField.java | 24 +-
.../org/apache/solr/schema/CurrencyField.java | 32 +-
.../java/org/apache/solr/schema/LatLonType.java | 2 +-
.../schema/RptWithGeometrySpatialField.java | 10 +-
.../org/apache/solr/schema/StrFieldSource.java | 8 +-
.../org/apache/solr/schema/TrieDoubleField.java | 48 +-
.../org/apache/solr/schema/TrieFloatField.java | 49 +-
.../org/apache/solr/schema/TrieIntField.java | 49 +-
.../org/apache/solr/schema/TrieLongField.java | 49 +-
.../solr/search/CollapsingQParserPlugin.java | 227 +++-
.../apache/solr/search/HashQParserPlugin.java | 29 +-
.../solr/search/IGainTermsQParserPlugin.java | 13 +-
.../apache/solr/search/SolrIndexSearcher.java | 55 +-
.../TextLogisticRegressionQParserPlugin.java | 11 +-
.../apache/solr/search/ValueSourceParser.java | 78 +-
.../facet/FacetFieldProcessorByArrayDV.java | 78 +-
.../facet/FacetFieldProcessorByHashDV.java | 19 +-
.../org/apache/solr/search/facet/HLLAgg.java | 13 +-
.../apache/solr/search/facet/PercentileAgg.java | 2 +-
.../org/apache/solr/search/facet/SlotAcc.java | 12 +-
.../org/apache/solr/search/facet/UniqueAgg.java | 12 +-
.../solr/search/facet/UniqueMultiDvSlotAcc.java | 35 +-
.../search/facet/UniqueSinglevaluedSlotAcc.java | 24 +-
.../solr/search/function/OrdFieldSource.java | 33 +-
.../search/function/ReverseOrdFieldSource.java | 13 +-
.../function/SolrComparisonBoolFunction.java | 4 +-
.../function/distance/GeohashFunction.java | 4 +-
.../distance/GeohashHaversineFunction.java | 6 +-
.../distance/HaversineConstFunction.java | 4 +-
.../function/distance/HaversineFunction.java | 6 +-
.../distance/SquaredEuclideanFunction.java | 4 +-
.../distance/StringDistanceFunction.java | 6 +-
.../distance/VectorDistanceFunction.java | 6 +-
.../join/BlockJoinFieldFacetAccumulator.java | 31 +-
.../solr/search/join/GraphTermsCollector.java | 20 +-
.../apache/solr/uninverting/DocTermOrds.java | 6 +-
.../org/apache/solr/uninverting/FieldCache.java | 15 +-
.../apache/solr/uninverting/FieldCacheImpl.java | 320 ++++--
.../solr/uninverting/UninvertingReader.java | 64 +-
.../apache/solr/schema/DocValuesMultiTest.java | 10 +-
.../org/apache/solr/schema/DocValuesTest.java | 48 +-
.../test/org/apache/solr/search/TestDocSet.java | 5 -
.../apache/solr/search/TestRankQueryPlugin.java | 14 +-
.../search/function/NvlValueSourceParser.java | 6 +-
.../solr/uninverting/TestDocTermOrds.java | 44 +-
.../apache/solr/uninverting/TestFieldCache.java | 211 ++--
.../solr/uninverting/TestFieldCacheReopen.java | 10 +-
.../TestFieldCacheSanityChecker.java | 18 +-
.../uninverting/TestFieldCacheSortRandom.java | 3 +-
.../uninverting/TestFieldCacheVsDocValues.java | 55 +-
.../uninverting/TestFieldCacheWithThreads.java | 60 +-
.../solr/uninverting/TestLegacyFieldCache.java | 147 +--
.../solr/uninverting/TestUninvertingReader.java | 16 +-
.../apache/solr/update/DocumentBuilderTest.java | 9 +-
335 files changed, 10597 insertions(+), 5844 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f7aa200d/lucene/CHANGES.txt
----------------------------------------------------------------------
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 7c60d2c..c7d71a2 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -18,6 +18,10 @@ API Changes
* LUCENE-7355: AnalyzingQueryParser has been removed as its functionality has
been folded into the classic QueryParser. (Adrien Grand)
+* LUCENE-7407: Doc values APIs have been switched from random access
+ to iterators, enabling future codec compression improvements. (Mike
+ McCandless)
+
Bug Fixes
Improvements
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f7aa200d/lucene/analysis/common/src/test/org/apache/lucene/collation/TestCollationDocValuesField.java
----------------------------------------------------------------------
diff --git a/lucene/analysis/common/src/test/org/apache/lucene/collation/TestCollationDocValuesField.java b/lucene/analysis/common/src/test/org/apache/lucene/collation/TestCollationDocValuesField.java
index 3a81ba4..018422f 100644
--- a/lucene/analysis/common/src/test/org/apache/lucene/collation/TestCollationDocValuesField.java
+++ b/lucene/analysis/common/src/test/org/apache/lucene/collation/TestCollationDocValuesField.java
@@ -120,7 +120,8 @@ public class TestCollationDocValuesField extends LuceneTestCase {
Document doc = is.doc(docID);
String s = doc.getField("field").stringValue();
boolean collatorAccepts = collate(collator, s, startPoint) >= 0 && collate(collator, s, endPoint) <= 0;
- BytesRef br = dvs.get(docID);
+ assertEquals(docID, dvs.nextDoc());
+ BytesRef br = dvs.binaryValue();
boolean luceneAccepts = br.compareTo(startBR) >= 0 && br.compareTo(endBR) <= 0;
assertEquals(startPoint + " <= " + s + " <= " + endPoint, collatorAccepts, luceneAccepts);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f7aa200d/lucene/analysis/icu/src/test/org/apache/lucene/collation/TestICUCollationDocValuesField.java
----------------------------------------------------------------------
diff --git a/lucene/analysis/icu/src/test/org/apache/lucene/collation/TestICUCollationDocValuesField.java b/lucene/analysis/icu/src/test/org/apache/lucene/collation/TestICUCollationDocValuesField.java
index 28fdd43..24862c4 100644
--- a/lucene/analysis/icu/src/test/org/apache/lucene/collation/TestICUCollationDocValuesField.java
+++ b/lucene/analysis/icu/src/test/org/apache/lucene/collation/TestICUCollationDocValuesField.java
@@ -117,7 +117,8 @@ public class TestICUCollationDocValuesField extends LuceneTestCase {
Document doc = is.doc(docID);
String s = doc.getField("field").stringValue();
boolean collatorAccepts = collator.compare(s, startPoint) >= 0 && collator.compare(s, endPoint) <= 0;
- BytesRef br = dvs.get(docID);
+ assertEquals(docID, dvs.nextDoc());
+ BytesRef br = dvs.binaryValue();
boolean luceneAccepts = br.compareTo(startBR) >= 0 && br.compareTo(endBR) <= 0;
assertEquals(collatorAccepts, luceneAccepts);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f7aa200d/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
----------------------------------------------------------------------
diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java b/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
index 62cd9cf..6c56cec 100644
--- a/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
+++ b/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
@@ -778,43 +778,56 @@ public class TestBackwardsCompatibility extends LuceneTestCase {
for (int i=0;i<35;i++) {
int id = Integer.parseInt(reader.document(i).get("id"));
- assertEquals(id, dvByte.get(i));
+ assertEquals(i, dvByte.nextDoc());
+ assertEquals(id, dvByte.longValue());
byte bytes[] = new byte[] {
(byte)(id >>> 24), (byte)(id >>> 16),(byte)(id >>> 8),(byte)id
};
BytesRef expectedRef = new BytesRef(bytes);
- BytesRef term = dvBytesDerefFixed.get(i);
+ assertEquals(i, dvBytesDerefFixed.nextDoc());
+ BytesRef term = dvBytesDerefFixed.binaryValue();
assertEquals(expectedRef, term);
- term = dvBytesDerefVar.get(i);
+ assertEquals(i, dvBytesDerefVar.nextDoc());
+ term = dvBytesDerefVar.binaryValue();
assertEquals(expectedRef, term);
- term = dvBytesSortedFixed.get(i);
+ assertEquals(i, dvBytesSortedFixed.nextDoc());
+ term = dvBytesSortedFixed.binaryValue();
assertEquals(expectedRef, term);
- term = dvBytesSortedVar.get(i);
+ assertEquals(i, dvBytesSortedVar.nextDoc());
+ term = dvBytesSortedVar.binaryValue();
assertEquals(expectedRef, term);
- term = dvBytesStraightFixed.get(i);
+ assertEquals(i, dvBytesStraightFixed.nextDoc());
+ term = dvBytesStraightFixed.binaryValue();
assertEquals(expectedRef, term);
- term = dvBytesStraightVar.get(i);
+ assertEquals(i, dvBytesStraightVar.nextDoc());
+ term = dvBytesStraightVar.binaryValue();
assertEquals(expectedRef, term);
- assertEquals((double)id, Double.longBitsToDouble(dvDouble.get(i)), 0D);
- assertEquals((float)id, Float.intBitsToFloat((int)dvFloat.get(i)), 0F);
- assertEquals(id, dvInt.get(i));
- assertEquals(id, dvLong.get(i));
- assertEquals(id, dvPacked.get(i));
- assertEquals(id, dvShort.get(i));
+ assertEquals(i, dvDouble.nextDoc());
+ assertEquals((double)id, Double.longBitsToDouble(dvDouble.longValue()), 0D);
+ assertEquals(i, dvFloat.nextDoc());
+ assertEquals((float)id, Float.intBitsToFloat((int)dvFloat.longValue()), 0F);
+ assertEquals(i, dvInt.nextDoc());
+ assertEquals(id, dvInt.longValue());
+ assertEquals(i, dvLong.nextDoc());
+ assertEquals(id, dvLong.longValue());
+ assertEquals(i, dvPacked.nextDoc());
+ assertEquals(id, dvPacked.longValue());
+ assertEquals(i, dvShort.nextDoc());
+ assertEquals(id, dvShort.longValue());
if (is42Index) {
- dvSortedSet.setDocument(i);
+ assertEquals(i, dvSortedSet.nextDoc());
long ord = dvSortedSet.nextOrd();
assertEquals(SortedSetDocValues.NO_MORE_ORDS, dvSortedSet.nextOrd());
term = dvSortedSet.lookupOrd(ord);
assertEquals(expectedRef, term);
}
if (is49Index) {
- dvSortedNumeric.setDocument(i);
- assertEquals(1, dvSortedNumeric.count());
- assertEquals(id, dvSortedNumeric.valueAt(0));
+ assertEquals(i, dvSortedNumeric.nextDoc());
+ assertEquals(1, dvSortedNumeric.docValueCount());
+ assertEquals(id, dvSortedNumeric.nextValue());
}
}
}
@@ -1378,7 +1391,9 @@ public class TestBackwardsCompatibility extends LuceneTestCase {
NumericDocValues ndvf = r.getNumericDocValues(f);
NumericDocValues ndvcf = r.getNumericDocValues(cf);
for (int i = 0; i < r.maxDoc(); i++) {
- assertEquals(ndvcf.get(i), ndvf.get(i)*2);
+ assertEquals(i, ndvcf.nextDoc());
+ assertEquals(i, ndvf.nextDoc());
+ assertEquals(ndvcf.longValue(), ndvf.longValue()*2);
}
}
@@ -1386,7 +1401,9 @@ public class TestBackwardsCompatibility extends LuceneTestCase {
BinaryDocValues bdvf = r.getBinaryDocValues(f);
BinaryDocValues bdvcf = r.getBinaryDocValues(cf);
for (int i = 0; i < r.maxDoc(); i++) {
- assertEquals(getValue(bdvcf, i), getValue(bdvf, i)*2);
+ assertEquals(i, bdvf.nextDoc());
+ assertEquals(i, bdvcf.nextDoc());
+ assertEquals(getValue(bdvcf), getValue(bdvf)*2);
}
}
@@ -1464,9 +1481,9 @@ public class TestBackwardsCompatibility extends LuceneTestCase {
}
}
- static long getValue(BinaryDocValues bdv, int idx) {
- BytesRef term = bdv.get(idx);
- idx = term.offset;
+ static long getValue(BinaryDocValues bdv) {
+ BytesRef term = bdv.binaryValue();
+ int idx = term.offset;
byte b = term.bytes[idx++];
long value = b & 0x7FL;
for (int shift = 7; (b & 0x80L) != 0; shift += 7) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f7aa200d/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectDocValuesConsumer.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectDocValuesConsumer.java b/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectDocValuesConsumer.java
index 4260745..7d096a4 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectDocValuesConsumer.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectDocValuesConsumer.java
@@ -22,6 +22,8 @@ import java.util.Iterator;
import org.apache.lucene.codecs.CodecUtil;
import org.apache.lucene.codecs.DocValuesConsumer;
+import org.apache.lucene.codecs.DocValuesProducer;
+import org.apache.lucene.codecs.LegacyDocValuesIterables;
import org.apache.lucene.index.FieldInfo;
import org.apache.lucene.index.IndexFileNames;
import org.apache.lucene.index.SegmentWriteState;
@@ -29,14 +31,14 @@ import org.apache.lucene.store.IndexOutput;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.IOUtils;
-import static org.apache.lucene.codecs.memory.DirectDocValuesProducer.VERSION_CURRENT;
import static org.apache.lucene.codecs.memory.DirectDocValuesProducer.BYTES;
+import static org.apache.lucene.codecs.memory.DirectDocValuesProducer.NUMBER;
import static org.apache.lucene.codecs.memory.DirectDocValuesProducer.SORTED;
import static org.apache.lucene.codecs.memory.DirectDocValuesProducer.SORTED_NUMERIC;
import static org.apache.lucene.codecs.memory.DirectDocValuesProducer.SORTED_NUMERIC_SINGLETON;
import static org.apache.lucene.codecs.memory.DirectDocValuesProducer.SORTED_SET;
import static org.apache.lucene.codecs.memory.DirectDocValuesProducer.SORTED_SET_SINGLETON;
-import static org.apache.lucene.codecs.memory.DirectDocValuesProducer.NUMBER;
+import static org.apache.lucene.codecs.memory.DirectDocValuesProducer.VERSION_CURRENT;
/**
* Writer for {@link DirectDocValuesFormat}
@@ -65,10 +67,10 @@ class DirectDocValuesConsumer extends DocValuesConsumer {
}
@Override
- public void addNumericField(FieldInfo field, Iterable<Number> values) throws IOException {
+ public void addNumericField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
meta.writeVInt(field.number);
meta.writeByte(NUMBER);
- addNumericFieldValues(field, values);
+ addNumericFieldValues(field, LegacyDocValuesIterables.numericIterable(field, valuesProducer, maxDoc));
}
private void addNumericFieldValues(FieldInfo field, Iterable<Number> values) throws IOException {
@@ -162,10 +164,10 @@ class DirectDocValuesConsumer extends DocValuesConsumer {
}
@Override
- public void addBinaryField(FieldInfo field, final Iterable<BytesRef> values) throws IOException {
+ public void addBinaryField(FieldInfo field, final DocValuesProducer valuesProducer) throws IOException {
meta.writeVInt(field.number);
meta.writeByte(BYTES);
- addBinaryFieldValues(field, values);
+ addBinaryFieldValues(field, LegacyDocValuesIterables.binaryIterable(field, valuesProducer, maxDoc));
}
private void addBinaryFieldValues(FieldInfo field, final Iterable<BytesRef> values) throws IOException {
@@ -231,19 +233,22 @@ class DirectDocValuesConsumer extends DocValuesConsumer {
}
@Override
- public void addSortedField(FieldInfo field, Iterable<BytesRef> values, Iterable<Number> docToOrd) throws IOException {
+ public void addSortedField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
meta.writeVInt(field.number);
meta.writeByte(SORTED);
// write the ordinals as numerics
- addNumericFieldValues(field, docToOrd);
-
+ addNumericFieldValues(field, LegacyDocValuesIterables.sortedOrdIterable(valuesProducer, field, maxDoc));
// write the values as binary
- addBinaryFieldValues(field, values);
+ addBinaryFieldValues(field, LegacyDocValuesIterables.valuesIterable(valuesProducer.getSorted(field)));
}
@Override
- public void addSortedNumericField(FieldInfo field, Iterable<Number> docToValueCount, Iterable<Number> values) throws IOException {
+ public void addSortedNumericField(FieldInfo field, final DocValuesProducer valuesProducer) throws IOException {
+
+ final Iterable<Number> docToValueCount = LegacyDocValuesIterables.sortedNumericToDocCount(valuesProducer, field, maxDoc);
+ final Iterable<Number> values = LegacyDocValuesIterables.sortedNumericToValues(valuesProducer, field);
+
meta.writeVInt(field.number);
if (isSingleValued(docToValueCount)) {
meta.writeByte(SORTED_NUMERIC_SINGLETON);
@@ -264,7 +269,11 @@ class DirectDocValuesConsumer extends DocValuesConsumer {
// note: this might not be the most efficient... but it's fairly simple
@Override
- public void addSortedSetField(FieldInfo field, Iterable<BytesRef> values, final Iterable<Number> docToOrdCount, final Iterable<Number> ords) throws IOException {
+ public void addSortedSetField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
+ Iterable<BytesRef> values = LegacyDocValuesIterables.valuesIterable(valuesProducer.getSortedSet(field));
+ Iterable<Number> docToOrdCount = LegacyDocValuesIterables.sortedSetOrdCountIterable(valuesProducer, field, maxDoc);
+ Iterable<Number> ords = LegacyDocValuesIterables.sortedSetOrdsIterable(valuesProducer, field);
+
meta.writeVInt(field.number);
if (isSingleValued(docToOrdCount)) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f7aa200d/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectDocValuesProducer.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectDocValuesProducer.java b/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectDocValuesProducer.java
index 1dfd2f2..fe6c8f6 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectDocValuesProducer.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectDocValuesProducer.java
@@ -28,18 +28,8 @@ import java.util.concurrent.atomic.AtomicLong;
import org.apache.lucene.codecs.CodecUtil;
import org.apache.lucene.codecs.DocValuesProducer;
-import org.apache.lucene.index.BinaryDocValues;
-import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.DocValues;
-import org.apache.lucene.index.FieldInfo;
-import org.apache.lucene.index.FieldInfos;
-import org.apache.lucene.index.IndexFileNames;
-import org.apache.lucene.index.NumericDocValues;
-import org.apache.lucene.index.RandomAccessOrds;
-import org.apache.lucene.index.SegmentReadState;
+import org.apache.lucene.index.*;
import org.apache.lucene.index.SortedDocValues;
-import org.apache.lucene.index.SortedNumericDocValues;
-import org.apache.lucene.index.SortedSetDocValues;
import org.apache.lucene.store.ChecksumIndexInput;
import org.apache.lucene.store.IndexInput;
import org.apache.lucene.util.Accountable;
@@ -284,15 +274,16 @@ class DirectDocValuesProducer extends DocValuesProducer {
@Override
public synchronized NumericDocValues getNumeric(FieldInfo field) throws IOException {
NumericRawValues instance = numericInstances.get(field.name);
+ NumericEntry ne = numerics.get(field.name);
if (instance == null) {
// Lazy load
- instance = loadNumeric(numerics.get(field.name));
+ instance = loadNumeric(ne);
if (!merging) {
numericInstances.put(field.name, instance);
ramBytesUsed.addAndGet(instance.ramBytesUsed());
}
}
- return instance.numerics;
+ return new LegacyNumericDocValuesWrapper(getMissingBits(field, ne.missingOffset, ne.missingBytes), instance.numerics);
}
private NumericRawValues loadNumeric(NumericEntry entry) throws IOException {
@@ -305,7 +296,7 @@ class DirectDocValuesProducer extends DocValuesProducer {
final byte[] values = new byte[entry.count];
data.readBytes(values, 0, entry.count);
ret.bytesUsed = RamUsageEstimator.sizeOf(values);
- ret.numerics = new NumericDocValues() {
+ ret.numerics = new LegacyNumericDocValues() {
@Override
public long get(int idx) {
return values[idx];
@@ -321,7 +312,7 @@ class DirectDocValuesProducer extends DocValuesProducer {
values[i] = data.readShort();
}
ret.bytesUsed = RamUsageEstimator.sizeOf(values);
- ret.numerics = new NumericDocValues() {
+ ret.numerics = new LegacyNumericDocValues() {
@Override
public long get(int idx) {
return values[idx];
@@ -337,7 +328,7 @@ class DirectDocValuesProducer extends DocValuesProducer {
values[i] = data.readInt();
}
ret.bytesUsed = RamUsageEstimator.sizeOf(values);
- ret.numerics = new NumericDocValues() {
+ ret.numerics = new LegacyNumericDocValues() {
@Override
public long get(int idx) {
return values[idx];
@@ -353,7 +344,7 @@ class DirectDocValuesProducer extends DocValuesProducer {
values[i] = data.readLong();
}
ret.bytesUsed = RamUsageEstimator.sizeOf(values);
- ret.numerics = new NumericDocValues() {
+ ret.numerics = new LegacyNumericDocValues() {
@Override
public long get(int idx) {
return values[idx];
@@ -367,8 +358,7 @@ class DirectDocValuesProducer extends DocValuesProducer {
}
}
- @Override
- public synchronized BinaryDocValues getBinary(FieldInfo field) throws IOException {
+ private synchronized LegacyBinaryDocValues getLegacyBinary(FieldInfo field) throws IOException {
BinaryRawValues instance = binaryInstances.get(field.name);
if (instance == null) {
// Lazy load
@@ -381,7 +371,7 @@ class DirectDocValuesProducer extends DocValuesProducer {
final byte[] bytes = instance.bytes;
final int[] address = instance.address;
- return new BinaryDocValues() {
+ return new LegacyBinaryDocValues() {
final BytesRef term = new BytesRef();
@Override
@@ -394,6 +384,12 @@ class DirectDocValuesProducer extends DocValuesProducer {
};
}
+ @Override
+ public synchronized BinaryDocValues getBinary(FieldInfo field) throws IOException {
+ BinaryEntry be = binaries.get(field.name);
+ return new LegacyBinaryDocValuesWrapper(getMissingBits(field, be.missingOffset, be.missingBytes), getLegacyBinary(field));
+ }
+
private BinaryRawValues loadBinary(BinaryEntry entry) throws IOException {
IndexInput data = this.data.clone();
data.seek(entry.offset);
@@ -428,11 +424,11 @@ class DirectDocValuesProducer extends DocValuesProducer {
}
}
}
- return newSortedInstance(instance.docToOrd.numerics, getBinary(field), entry.values.count);
+ return new LegacySortedDocValuesWrapper(newSortedInstance(instance.docToOrd.numerics, getLegacyBinary(field), entry.values.count), maxDoc);
}
- private SortedDocValues newSortedInstance(final NumericDocValues docToOrd, final BinaryDocValues values, final int count) {
- return new SortedDocValues() {
+ private LegacySortedDocValues newSortedInstance(final LegacyNumericDocValues docToOrd, final LegacyBinaryDocValues values, final int count) {
+ return new LegacySortedDocValues() {
@Override
public int getOrd(int docID) {
@@ -477,14 +473,14 @@ class DirectDocValuesProducer extends DocValuesProducer {
}
if (entry.docToAddress == null) {
- final NumericDocValues single = instance.values.numerics;
+ final LegacyNumericDocValues single = instance.values.numerics;
final Bits docsWithField = getMissingBits(field, entry.values.missingOffset, entry.values.missingBytes);
- return DocValues.singleton(single, docsWithField);
+ return DocValues.singleton(new LegacyNumericDocValuesWrapper(docsWithField, single));
} else {
- final NumericDocValues docToAddress = instance.docToAddress.numerics;
- final NumericDocValues values = instance.values.numerics;
+ final LegacyNumericDocValues docToAddress = instance.docToAddress.numerics;
+ final LegacyNumericDocValues values = instance.values.numerics;
- return new SortedNumericDocValues() {
+ return new LegacySortedNumericDocValuesWrapper(new LegacySortedNumericDocValues() {
int valueStart;
int valueLimit;
@@ -503,7 +499,7 @@ class DirectDocValuesProducer extends DocValuesProducer {
public int count() {
return valueLimit - valueStart;
}
- };
+ }, maxDoc);
}
}
@@ -530,15 +526,15 @@ class DirectDocValuesProducer extends DocValuesProducer {
}
if (instance.docToOrdAddress == null) {
- SortedDocValues sorted = newSortedInstance(instance.ords.numerics, getBinary(field), entry.values.count);
- return DocValues.singleton(sorted);
+ LegacySortedDocValues sorted = newSortedInstance(instance.ords.numerics, getLegacyBinary(field), entry.values.count);
+ return DocValues.singleton(new LegacySortedDocValuesWrapper(sorted, maxDoc));
} else {
- final NumericDocValues docToOrdAddress = instance.docToOrdAddress.numerics;
- final NumericDocValues ords = instance.ords.numerics;
- final BinaryDocValues values = getBinary(field);
+ final LegacyNumericDocValues docToOrdAddress = instance.docToOrdAddress.numerics;
+ final LegacyNumericDocValues ords = instance.ords.numerics;
+ final LegacyBinaryDocValues values = getLegacyBinary(field);
// Must make a new instance since the iterator has state:
- return new RandomAccessOrds() {
+ return new LegacySortedSetDocValuesWrapper(new LegacySortedSetDocValues() {
int ordStart;
int ordUpto;
int ordLimit;
@@ -568,20 +564,10 @@ class DirectDocValuesProducer extends DocValuesProducer {
return entry.values.count;
}
- @Override
- public long ordAt(int index) {
- return ords.get(ordStart + index);
- }
-
- @Override
- public int cardinality() {
- return ordLimit - ordStart;
- }
-
// Leave lookupTerm to super's binary search
// Leave termsEnum to super
- };
+ }, maxDoc);
}
}
@@ -621,26 +607,6 @@ class DirectDocValuesProducer extends DocValuesProducer {
}
@Override
- public Bits getDocsWithField(FieldInfo field) throws IOException {
- switch(field.getDocValuesType()) {
- case SORTED_SET:
- return DocValues.docsWithValue(getSortedSet(field), maxDoc);
- case SORTED_NUMERIC:
- return DocValues.docsWithValue(getSortedNumeric(field), maxDoc);
- case SORTED:
- return DocValues.docsWithValue(getSorted(field), maxDoc);
- case BINARY:
- BinaryEntry be = binaries.get(field.name);
- return getMissingBits(field, be.missingOffset, be.missingBytes);
- case NUMERIC:
- NumericEntry ne = numerics.get(field.name);
- return getMissingBits(field, ne.missingOffset, ne.missingBytes);
- default:
- throw new AssertionError();
- }
- }
-
- @Override
public synchronized DocValuesProducer getMergeInstance() throws IOException {
return new DirectDocValuesProducer(this);
}
@@ -680,7 +646,7 @@ class DirectDocValuesProducer extends DocValuesProducer {
}
static class NumericRawValues implements Accountable {
- NumericDocValues numerics;
+ LegacyNumericDocValues numerics;
long bytesUsed;
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f7aa200d/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryDocValuesConsumer.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryDocValuesConsumer.java b/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryDocValuesConsumer.java
index 44ffdf9..eb7d096 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryDocValuesConsumer.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryDocValuesConsumer.java
@@ -25,6 +25,8 @@ import java.util.NoSuchElementException;
import org.apache.lucene.codecs.CodecUtil;
import org.apache.lucene.codecs.DocValuesConsumer;
+import org.apache.lucene.codecs.DocValuesProducer;
+import org.apache.lucene.codecs.LegacyDocValuesIterables;
import org.apache.lucene.index.FieldInfo;
import org.apache.lucene.index.IndexFileNames;
import org.apache.lucene.index.SegmentWriteState;
@@ -45,19 +47,19 @@ import org.apache.lucene.util.packed.MonotonicBlockPackedWriter;
import org.apache.lucene.util.packed.PackedInts.FormatAndBits;
import org.apache.lucene.util.packed.PackedInts;
-import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.VERSION_CURRENT;
+import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.BLOCK_COMPRESSED;
import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.BLOCK_SIZE;
import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.BYTES;
-import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.NUMBER;
+import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.DELTA_COMPRESSED;
import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.FST;
-import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.SORTED_SET;
-import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.SORTED_SET_SINGLETON;
+import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.GCD_COMPRESSED;
+import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.NUMBER;
import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.SORTED_NUMERIC;
import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.SORTED_NUMERIC_SINGLETON;
-import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.DELTA_COMPRESSED;
-import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.BLOCK_COMPRESSED;
-import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.GCD_COMPRESSED;
+import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.SORTED_SET;
+import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.SORTED_SET_SINGLETON;
import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.TABLE_COMPRESSED;
+import static org.apache.lucene.codecs.memory.MemoryDocValuesProducer.VERSION_CURRENT;
/**
* Writer for {@link MemoryDocValuesFormat}
@@ -87,8 +89,8 @@ class MemoryDocValuesConsumer extends DocValuesConsumer {
}
@Override
- public void addNumericField(FieldInfo field, Iterable<Number> values) throws IOException {
- addNumericField(field, values, true);
+ public void addNumericField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
+ addNumericField(field, LegacyDocValuesIterables.numericIterable(field, valuesProducer, maxDoc), true);
}
void addNumericField(FieldInfo field, Iterable<Number> values, boolean optimizeStorage) throws IOException {
@@ -297,7 +299,11 @@ class MemoryDocValuesConsumer extends DocValuesConsumer {
}
@Override
- public void addBinaryField(FieldInfo field, final Iterable<BytesRef> values) throws IOException {
+ public void addBinaryField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
+ addBinaryField(field, LegacyDocValuesIterables.binaryIterable(field, valuesProducer, maxDoc));
+ }
+
+ private void addBinaryField(FieldInfo field, final Iterable<BytesRef> values) throws IOException {
// write the byte[] data
meta.writeVInt(field.number);
meta.writeByte(BYTES);
@@ -396,7 +402,13 @@ class MemoryDocValuesConsumer extends DocValuesConsumer {
}
@Override
- public void addSortedField(FieldInfo field, Iterable<BytesRef> values, Iterable<Number> docToOrd) throws IOException {
+ public void addSortedField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
+ addSortedField(field,
+ LegacyDocValuesIterables.valuesIterable(valuesProducer.getSorted(field)),
+ LegacyDocValuesIterables.sortedOrdIterable(valuesProducer, field, maxDoc));
+ }
+
+ private void addSortedField(FieldInfo field, Iterable<BytesRef> values, Iterable<Number> docToOrd) throws IOException {
// write the ordinals as numerics
addNumericField(field, docToOrd, false);
@@ -405,7 +417,11 @@ class MemoryDocValuesConsumer extends DocValuesConsumer {
}
@Override
- public void addSortedNumericField(FieldInfo field, Iterable<Number> docToValueCount, Iterable<Number> values) throws IOException {
+ public void addSortedNumericField(FieldInfo field, final DocValuesProducer valuesProducer) throws IOException {
+
+ final Iterable<Number> docToValueCount = LegacyDocValuesIterables.sortedNumericToDocCount(valuesProducer, field, maxDoc);
+ final Iterable<Number> values = LegacyDocValuesIterables.sortedNumericToValues(valuesProducer, field);
+
meta.writeVInt(field.number);
if (isSingleValued(docToValueCount)) {
@@ -436,7 +452,10 @@ class MemoryDocValuesConsumer extends DocValuesConsumer {
// note: this might not be the most efficient... but it's fairly simple
@Override
- public void addSortedSetField(FieldInfo field, Iterable<BytesRef> values, final Iterable<Number> docToOrdCount, final Iterable<Number> ords) throws IOException {
+ public void addSortedSetField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
+ Iterable<BytesRef> values = LegacyDocValuesIterables.valuesIterable(valuesProducer.getSortedSet(field));
+ Iterable<Number> docToOrdCount = LegacyDocValuesIterables.sortedSetOrdCountIterable(valuesProducer, field, maxDoc);
+ Iterable<Number> ords = LegacyDocValuesIterables.sortedSetOrdsIterable(valuesProducer, field);
meta.writeVInt(field.number);
if (isSingleValued(docToOrdCount)) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f7aa200d/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryDocValuesProducer.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryDocValuesProducer.java b/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryDocValuesProducer.java
index 46cf3e5..bff8c2d 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryDocValuesProducer.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryDocValuesProducer.java
@@ -28,19 +28,8 @@ import java.util.concurrent.atomic.AtomicLong;
import org.apache.lucene.codecs.CodecUtil;
import org.apache.lucene.codecs.DocValuesProducer;
-import org.apache.lucene.index.BinaryDocValues;
-import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.DocValues;
-import org.apache.lucene.index.PostingsEnum;
-import org.apache.lucene.index.FieldInfo;
-import org.apache.lucene.index.FieldInfos;
-import org.apache.lucene.index.IndexFileNames;
-import org.apache.lucene.index.NumericDocValues;
-import org.apache.lucene.index.SegmentReadState;
+import org.apache.lucene.index.*;
import org.apache.lucene.index.SortedDocValues;
-import org.apache.lucene.index.SortedNumericDocValues;
-import org.apache.lucene.index.SortedSetDocValues;
-import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.store.ByteArrayDataInput;
import org.apache.lucene.store.ChecksumIndexInput;
import org.apache.lucene.store.IndexInput;
@@ -56,11 +45,11 @@ import org.apache.lucene.util.IntsRefBuilder;
import org.apache.lucene.util.LongValues;
import org.apache.lucene.util.PagedBytes;
import org.apache.lucene.util.RamUsageEstimator;
-import org.apache.lucene.util.fst.BytesRefFSTEnum;
import org.apache.lucene.util.fst.BytesRefFSTEnum.InputOutput;
-import org.apache.lucene.util.fst.FST;
+import org.apache.lucene.util.fst.BytesRefFSTEnum;
import org.apache.lucene.util.fst.FST.Arc;
import org.apache.lucene.util.fst.FST.BytesReader;
+import org.apache.lucene.util.fst.FST;
import org.apache.lucene.util.fst.PositiveIntOutputs;
import org.apache.lucene.util.fst.Util;
import org.apache.lucene.util.packed.BlockPackedReader;
@@ -80,7 +69,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
private final IndexInput data;
// ram instances we have already loaded
- private final Map<String,NumericDocValues> numericInstances = new HashMap<>();
+ private final Map<String,LegacyNumericDocValues> numericInstances = new HashMap<>();
private final Map<String,BytesAndAddresses> pagedBytesInstances = new HashMap<>();
private final Map<String,FST<Long>> fstInstances = new HashMap<>();
private final Map<String,FixedBitSet> docsWithFieldInstances = new HashMap<>();
@@ -280,7 +269,19 @@ class MemoryDocValuesProducer extends DocValuesProducer {
@Override
public synchronized NumericDocValues getNumeric(FieldInfo field) throws IOException {
- NumericDocValues instance = numericInstances.get(field.name);
+ LegacyNumericDocValues instance = numericInstances.get(field.name);
+ if (instance == null) {
+ instance = loadNumeric(field);
+ if (!merging) {
+ numericInstances.put(field.name, instance);
+ }
+ }
+ NumericEntry ne = numerics.get(field.name);
+ return new LegacyNumericDocValuesWrapper(getMissingBits(field, ne.missingOffset, ne.missingBytes), instance);
+ }
+
+ private synchronized LegacyNumericDocValues getNumericNonIterator(FieldInfo field) throws IOException {
+ LegacyNumericDocValues instance = numericInstances.get(field.name);
if (instance == null) {
instance = loadNumeric(field);
if (!merging) {
@@ -321,7 +322,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
return getClass().getSimpleName() + "(entries=" + numEntries + ")";
}
- private NumericDocValues loadNumeric(FieldInfo field) throws IOException {
+ private LegacyNumericDocValues loadNumeric(FieldInfo field) throws IOException {
NumericEntry entry = numerics.get(field.name);
IndexInput data = this.data.clone();
data.seek(entry.offset + entry.missingBytes);
@@ -342,7 +343,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
ramBytesUsed.addAndGet(RamUsageEstimator.sizeOf(decode) + ordsReader.ramBytesUsed());
numericInfo.put(field.name, Accountables.namedAccountable("table compressed", ordsReader));
}
- return new NumericDocValues() {
+ return new LegacyNumericDocValues() {
@Override
public long get(int docID) {
return decode[(int)ordsReader.get(docID)];
@@ -357,7 +358,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
ramBytesUsed.addAndGet(deltaReader.ramBytesUsed());
numericInfo.put(field.name, Accountables.namedAccountable("delta compressed", deltaReader));
}
- return new NumericDocValues() {
+ return new LegacyNumericDocValues() {
@Override
public long get(int docID) {
return minDelta + deltaReader.get(docID);
@@ -381,7 +382,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
ramBytesUsed.addAndGet(quotientReader.ramBytesUsed());
numericInfo.put(field.name, Accountables.namedAccountable("gcd compressed", quotientReader));
}
- return new NumericDocValues() {
+ return new LegacyNumericDocValues() {
@Override
public long get(int docID) {
return min + mult * quotientReader.get(docID);
@@ -392,8 +393,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
}
}
- @Override
- public BinaryDocValues getBinary(FieldInfo field) throws IOException {
+ private LegacyBinaryDocValues getLegacyBinary(FieldInfo field) throws IOException {
BinaryEntry entry = binaries.get(field.name);
BytesAndAddresses instance;
@@ -412,7 +412,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
if (addresses == null) {
assert entry.minLength == entry.maxLength;
final int fixedLength = entry.minLength;
- return new BinaryDocValues() {
+ return new LegacyBinaryDocValues() {
final BytesRef term = new BytesRef();
@Override
@@ -422,7 +422,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
}
};
} else {
- return new BinaryDocValues() {
+ return new LegacyBinaryDocValues() {
final BytesRef term = new BytesRef();
@Override
@@ -436,6 +436,12 @@ class MemoryDocValuesProducer extends DocValuesProducer {
}
}
+ @Override
+ public synchronized BinaryDocValues getBinary(FieldInfo field) throws IOException {
+ BinaryEntry be = binaries.get(field.name);
+ return new LegacyBinaryDocValuesWrapper(getMissingBits(field, be.missingOffset, be.missingBytes), getLegacyBinary(field));
+ }
+
private BytesAndAddresses loadBinary(FieldInfo field) throws IOException {
BytesAndAddresses bytesAndAddresses = new BytesAndAddresses();
BinaryEntry entry = binaries.get(field.name);
@@ -459,9 +465,13 @@ class MemoryDocValuesProducer extends DocValuesProducer {
@Override
public SortedDocValues getSorted(FieldInfo field) throws IOException {
+ return new LegacySortedDocValuesWrapper(getSortedNonIterator(field), maxDoc);
+ }
+
+ private LegacySortedDocValues getSortedNonIterator(FieldInfo field) throws IOException {
final FSTEntry entry = fsts.get(field.name);
if (entry.numOrds == 0) {
- return DocValues.emptySorted();
+ return DocValues.emptyLegacySorted();
}
FST<Long> instance;
synchronized(this) {
@@ -476,7 +486,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
}
}
}
- final NumericDocValues docToOrd = getNumeric(field);
+ final LegacyNumericDocValues docToOrd = getNumericNonIterator(field);
final FST<Long> fst = instance;
// per-thread resources
@@ -486,7 +496,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
final IntsRefBuilder scratchInts = new IntsRefBuilder();
final BytesRefFSTEnum<Long> fstEnum = new BytesRefFSTEnum<>(fst);
- return new SortedDocValues() {
+ return new LegacySortedDocValues() {
final BytesRefBuilder term = new BytesRefBuilder();
@Override
@@ -538,12 +548,12 @@ class MemoryDocValuesProducer extends DocValuesProducer {
public SortedNumericDocValues getSortedNumeric(FieldInfo field) throws IOException {
SortedNumericEntry entry = sortedNumerics.get(field.name);
if (entry.singleton) {
- NumericDocValues values = getNumeric(field);
+ LegacyNumericDocValues values = getNumericNonIterator(field);
NumericEntry ne = numerics.get(field.name);
Bits docsWithField = getMissingBits(field, ne.missingOffset, ne.missingBytes);
- return DocValues.singleton(values, docsWithField);
+ return DocValues.singleton(new LegacyNumericDocValuesWrapper(docsWithField, values));
} else {
- final NumericDocValues values = getNumeric(field);
+ final LegacyNumericDocValues values = getNumericNonIterator(field);
final MonotonicBlockPackedReader addr;
synchronized (this) {
MonotonicBlockPackedReader res = addresses.get(field.name);
@@ -561,7 +571,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
if (values instanceof LongValues) {
// probably not the greatest codec choice for this situation, but we support it
final LongValues longValues = (LongValues) values;
- return new SortedNumericDocValues() {
+ return new LegacySortedNumericDocValuesWrapper(new LegacySortedNumericDocValues() {
long startOffset;
long endOffset;
@@ -580,9 +590,9 @@ class MemoryDocValuesProducer extends DocValuesProducer {
public int count() {
return (int) (endOffset - startOffset);
}
- };
+ }, maxDoc);
} else {
- return new SortedNumericDocValues() {
+ return new LegacySortedNumericDocValuesWrapper(new LegacySortedNumericDocValues() {
int startOffset;
int endOffset;
@@ -601,7 +611,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
public int count() {
return (endOffset - startOffset);
}
- };
+ }, maxDoc);
}
}
}
@@ -630,7 +640,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
}
}
}
- final BinaryDocValues docToOrds = getBinary(field);
+ final LegacyBinaryDocValues docToOrds = getLegacyBinary(field);
final FST<Long> fst = instance;
// per-thread resources
@@ -640,7 +650,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
final IntsRefBuilder scratchInts = new IntsRefBuilder();
final BytesRefFSTEnum<Long> fstEnum = new BytesRefFSTEnum<>(fst);
final ByteArrayDataInput input = new ByteArrayDataInput();
- return new SortedSetDocValues() {
+ return new LegacySortedSetDocValuesWrapper(new LegacySortedSetDocValues() {
final BytesRefBuilder term = new BytesRefBuilder();
BytesRef ref;
long currentOrd;
@@ -699,7 +709,7 @@ class MemoryDocValuesProducer extends DocValuesProducer {
public TermsEnum termsEnum() {
return new FSTTermsEnum(fst);
}
- };
+ }, maxDoc);
}
private Bits getMissingBits(FieldInfo field, final long offset, final long length) throws IOException {
@@ -729,26 +739,6 @@ class MemoryDocValuesProducer extends DocValuesProducer {
}
@Override
- public Bits getDocsWithField(FieldInfo field) throws IOException {
- switch(field.getDocValuesType()) {
- case SORTED_SET:
- return DocValues.docsWithValue(getSortedSet(field), maxDoc);
- case SORTED_NUMERIC:
- return DocValues.docsWithValue(getSortedNumeric(field), maxDoc);
- case SORTED:
- return DocValues.docsWithValue(getSorted(field), maxDoc);
- case BINARY:
- BinaryEntry be = binaries.get(field.name);
- return getMissingBits(field, be.missingOffset, be.missingBytes);
- case NUMERIC:
- NumericEntry ne = numerics.get(field.name);
- return getMissingBits(field, ne.missingOffset, ne.missingBytes);
- default:
- throw new AssertionError();
- }
- }
-
- @Override
public void close() throws IOException {
data.close();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f7aa200d/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesReader.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesReader.java b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesReader.java
index 8b97128..c0b88cc 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesReader.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesReader.java
@@ -29,17 +29,8 @@ import java.util.Locale;
import java.util.Map;
import org.apache.lucene.codecs.DocValuesProducer;
-import org.apache.lucene.index.BinaryDocValues;
-import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.DocValues;
-import org.apache.lucene.index.DocValuesType;
-import org.apache.lucene.index.FieldInfo;
-import org.apache.lucene.index.IndexFileNames;
+import org.apache.lucene.index.*;
import org.apache.lucene.index.NumericDocValues;
-import org.apache.lucene.index.SegmentReadState;
-import org.apache.lucene.index.SortedDocValues;
-import org.apache.lucene.index.SortedNumericDocValues;
-import org.apache.lucene.index.SortedSetDocValues;
import org.apache.lucene.store.BufferedChecksumIndexInput;
import org.apache.lucene.store.ChecksumIndexInput;
import org.apache.lucene.store.IndexInput;
@@ -148,6 +139,15 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
@Override
public NumericDocValues getNumeric(FieldInfo fieldInfo) throws IOException {
+ LegacyNumericDocValues values = getNumericNonIterator(fieldInfo);
+ if (values == null) {
+ return null;
+ } else {
+ return new LegacyNumericDocValuesWrapper(getNumericDocsWithField(fieldInfo), values);
+ }
+ }
+
+ LegacyNumericDocValues getNumericNonIterator(FieldInfo fieldInfo) throws IOException {
final OneField field = fields.get(fieldInfo.name);
assert field != null;
@@ -161,7 +161,7 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
decoder.setParseBigDecimal(true);
- return new NumericDocValues() {
+ return new LegacyNumericDocValues() {
@Override
public long get(int docID) {
try {
@@ -211,8 +211,7 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
};
}
- @Override
- public BinaryDocValues getBinary(FieldInfo fieldInfo) throws IOException {
+ private LegacyBinaryDocValues getLegacyBinary(FieldInfo fieldInfo) throws IOException {
final OneField field = fields.get(fieldInfo.name);
// SegmentCoreReaders already verifies this field is
@@ -223,7 +222,7 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
final BytesRefBuilder scratch = new BytesRefBuilder();
final DecimalFormat decoder = new DecimalFormat(field.pattern, new DecimalFormatSymbols(Locale.ROOT));
- return new BinaryDocValues() {
+ return new LegacyBinaryDocValues() {
final BytesRefBuilder term = new BytesRefBuilder();
@Override
@@ -252,6 +251,11 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
};
}
+ @Override
+ public synchronized BinaryDocValues getBinary(FieldInfo field) throws IOException {
+ return new LegacyBinaryDocValuesWrapper(getBinaryDocsWithField(field), getLegacyBinary(field));
+ }
+
private Bits getBinaryDocsWithField(FieldInfo fieldInfo) throws IOException {
final OneField field = fields.get(fieldInfo.name);
final IndexInput in = data.clone();
@@ -302,7 +306,7 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
final DecimalFormat decoder = new DecimalFormat(field.pattern, new DecimalFormatSymbols(Locale.ROOT));
final DecimalFormat ordDecoder = new DecimalFormat(field.ordPattern, new DecimalFormatSymbols(Locale.ROOT));
- return new SortedDocValues() {
+ return new LegacySortedDocValuesWrapper(new LegacySortedDocValues() {
final BytesRefBuilder term = new BytesRefBuilder();
@Override
@@ -351,13 +355,13 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
public int getValueCount() {
return (int)field.numValues;
}
- };
+ }, maxDoc);
}
@Override
public SortedNumericDocValues getSortedNumeric(FieldInfo field) throws IOException {
- final BinaryDocValues binary = getBinary(field);
- return new SortedNumericDocValues() {
+ final LegacyBinaryDocValues binary = getLegacyBinary(field);
+ return new LegacySortedNumericDocValuesWrapper(new LegacySortedNumericDocValues() {
long values[];
@Override
@@ -383,7 +387,7 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
public int count() {
return values.length;
}
- };
+ }, maxDoc);
}
@Override
@@ -398,7 +402,7 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
final BytesRefBuilder scratch = new BytesRefBuilder();
final DecimalFormat decoder = new DecimalFormat(field.pattern, new DecimalFormatSymbols(Locale.ROOT));
- return new SortedSetDocValues() {
+ return new LegacySortedSetDocValuesWrapper(new LegacySortedSetDocValues() {
String[] currentOrds = new String[0];
int currentIndex = 0;
final BytesRefBuilder term = new BytesRefBuilder();
@@ -460,28 +464,10 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
public long getValueCount() {
return field.numValues;
}
- };
+ }, maxDoc);
}
@Override
- public Bits getDocsWithField(FieldInfo field) throws IOException {
- switch (field.getDocValuesType()) {
- case SORTED_SET:
- return DocValues.docsWithValue(getSortedSet(field), maxDoc);
- case SORTED_NUMERIC:
- return DocValues.docsWithValue(getSortedNumeric(field), maxDoc);
- case SORTED:
- return DocValues.docsWithValue(getSorted(field), maxDoc);
- case BINARY:
- return getBinaryDocsWithField(field);
- case NUMERIC:
- return getNumericDocsWithField(field);
- default:
- throw new AssertionError();
- }
- }
-
- @Override
public void close() throws IOException {
data.close();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f7aa200d/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesWriter.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesWriter.java b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesWriter.java
index 0d28479..379942e 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesWriter.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesWriter.java
@@ -27,10 +27,12 @@ import java.util.Locale;
import java.util.Set;
import org.apache.lucene.codecs.DocValuesConsumer;
+import org.apache.lucene.codecs.DocValuesProducer;
+import org.apache.lucene.codecs.LegacyDocValuesIterables;
+import org.apache.lucene.index.DocValuesType;
import org.apache.lucene.index.FieldInfo;
import org.apache.lucene.index.IndexFileNames;
import org.apache.lucene.index.SegmentWriteState;
-import org.apache.lucene.index.DocValuesType;
import org.apache.lucene.store.IndexOutput;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefBuilder;
@@ -69,7 +71,12 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
}
@Override
- public void addNumericField(FieldInfo field, Iterable<Number> values) throws IOException {
+ public void addNumericField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
+ addNumericField(field, LegacyDocValuesIterables.numericIterable(field, valuesProducer, numDocs));
+ }
+
+ void addNumericField(FieldInfo field, Iterable<Number> values) throws IOException {
+
assert fieldSeen(field.name);
assert field.getDocValuesType() == DocValuesType.NUMERIC || field.hasNorms();
writeFieldEntry(field, DocValuesType.NUMERIC);
@@ -133,10 +140,10 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
}
@Override
- public void addBinaryField(FieldInfo field, Iterable<BytesRef> values) throws IOException {
+ public void addBinaryField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
assert fieldSeen(field.name);
assert field.getDocValuesType() == DocValuesType.BINARY;
- doAddBinary(field, values);
+ doAddBinary(field, LegacyDocValuesIterables.binaryIterable(field, valuesProducer, numDocs));
}
private void doAddBinary(FieldInfo field, Iterable<BytesRef> values) throws IOException {
@@ -195,7 +202,10 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
}
@Override
- public void addSortedField(FieldInfo field, Iterable<BytesRef> values, Iterable<Number> docToOrd) throws IOException {
+ public void addSortedField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
+ Iterable<BytesRef> values = LegacyDocValuesIterables.valuesIterable(valuesProducer.getSorted(field));
+ Iterable<Number> docToOrd = LegacyDocValuesIterables.sortedOrdIterable(valuesProducer, field, numDocs);
+
assert fieldSeen(field.name);
assert field.getDocValuesType() == DocValuesType.SORTED;
writeFieldEntry(field, DocValuesType.SORTED);
@@ -272,7 +282,11 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
}
@Override
- public void addSortedNumericField(FieldInfo field, final Iterable<Number> docToValueCount, final Iterable<Number> values) throws IOException {
+ public void addSortedNumericField(FieldInfo field, final DocValuesProducer valuesProducer) throws IOException {
+
+ final Iterable<Number> docToValueCount = LegacyDocValuesIterables.sortedNumericToDocCount(valuesProducer, field, numDocs);
+ final Iterable<Number> values = LegacyDocValuesIterables.sortedNumericToValues(valuesProducer, field);
+
assert fieldSeen(field.name);
assert field.getDocValuesType() == DocValuesType.SORTED_NUMERIC;
doAddBinary(field, new Iterable<BytesRef>() {
@@ -314,7 +328,10 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
}
@Override
- public void addSortedSetField(FieldInfo field, Iterable<BytesRef> values, Iterable<Number> docToOrdCount, Iterable<Number> ords) throws IOException {
+ public void addSortedSetField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
+ Iterable<BytesRef> values = LegacyDocValuesIterables.valuesIterable(valuesProducer.getSortedSet(field));
+ Iterable<Number> docToOrdCount = LegacyDocValuesIterables.sortedSetOrdCountIterable(valuesProducer, field, numDocs);
+ Iterable<Number> ords = LegacyDocValuesIterables.sortedSetOrdsIterable(valuesProducer, field);
assert fieldSeen(field.name);
assert field.getDocValuesType() == DocValuesType.SORTED_SET;
writeFieldEntry(field, DocValuesType.SORTED_SET);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f7aa200d/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextNormsFormat.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextNormsFormat.java b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextNormsFormat.java
index 53e9b87..faa50b7 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextNormsFormat.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextNormsFormat.java
@@ -20,14 +20,17 @@ package org.apache.lucene.codecs.simpletext;
import java.io.IOException;
import java.util.Collection;
+import org.apache.lucene.codecs.LegacyDocValuesIterables;
import org.apache.lucene.codecs.NormsConsumer;
import org.apache.lucene.codecs.NormsFormat;
import org.apache.lucene.codecs.NormsProducer;
import org.apache.lucene.index.FieldInfo;
+import org.apache.lucene.index.LegacyNumericDocValuesWrapper;
import org.apache.lucene.index.NumericDocValues;
import org.apache.lucene.index.SegmentReadState;
import org.apache.lucene.index.SegmentWriteState;
import org.apache.lucene.util.Accountable;
+import org.apache.lucene.util.Bits;
/**
* plain-text norms format.
@@ -67,7 +70,7 @@ public class SimpleTextNormsFormat extends NormsFormat {
@Override
public NumericDocValues getNorms(FieldInfo field) throws IOException {
- return impl.getNumeric(field);
+ return new LegacyNumericDocValuesWrapper(new Bits.MatchAllBits(impl.maxDoc), impl.getNumericNonIterator(field));
}
@Override
@@ -113,8 +116,8 @@ public class SimpleTextNormsFormat extends NormsFormat {
}
@Override
- public void addNormsField(FieldInfo field, Iterable<Number> values) throws IOException {
- impl.addNumericField(field, values);
+ public void addNormsField(FieldInfo field, NormsProducer normsProducer) throws IOException {
+ impl.addNumericField(field, LegacyDocValuesIterables.normsIterable(field, normsProducer, impl.numDocs));
}
@Override