You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2011/12/09 14:30:44 UTC
svn commit: r1212405 [1/6] - in /lucene/dev/branches/lucene3622: ./ lucene/
lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/
lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/
lucene/contrib/highlighter...
Author: rmuir
Date: Fri Dec 9 13:30:38 2011
New Revision: 1212405
URL: http://svn.apache.org/viewvc?rev=1212405&view=rev
Log:
merge trunk (1211241:1212396)
Added:
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/NormsConsumer.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/NormsConsumer.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/NormsConsumerPerField.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/NormsConsumerPerField.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/NormsFormat.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/NormsFormat.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/NormsReader.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/NormsReader.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/NormsWriter.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/NormsWriter.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsReader.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsReader.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsWriter.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsWriter.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsFormat.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsFormat.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsReader.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsReader.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsWriter.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsWriter.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextNormsFormat.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextNormsFormat.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextNormsReader.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextNormsReader.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextNormsWriter.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextNormsWriter.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java
- copied unchanged from r1212396, lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java
lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java
- copied unchanged from r1212396, lucene/dev/trunk/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java
lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/MockSolrEntityProcessor.java
- copied unchanged from r1212396, lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/MockSolrEntityProcessor.java
lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java
- copied unchanged from r1212396, lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java
lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorUnit.java
- copied unchanged from r1212396, lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorUnit.java
lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/handler/component/BadComponentTest.java
- copied unchanged from r1212396, lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/BadComponentTest.java
lucene/dev/branches/lucene3622/solr/example/example-DIH/solr/solr/
- copied from r1212396, lucene/dev/trunk/solr/example/example-DIH/solr/solr/
Removed:
lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/index/FieldNormModifier.java
lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestFieldNormModifier.java
lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/misc/TestLengthNormModifier.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/NormsWriter.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/NormsWriterPerField.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/SegmentNorms.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/StaleReaderException.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsDictReader.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsDictWriter.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsIndexReader.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsIndexWriter.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexReaderCloneNorms.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexReaderDelete.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexReaderOnDiskFull.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/TestSetNorm.java
lucene/dev/branches/lucene3622/modules/benchmark/conf/deletepercent.alg
lucene/dev/branches/lucene3622/modules/benchmark/conf/deletes.alg
lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/DeleteByPercentTask.java
lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/DeleteDocTask.java
lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/FlushReaderTask.java
Modified:
lucene/dev/branches/lucene3622/ (props changed)
lucene/dev/branches/lucene3622/lucene/ (props changed)
lucene/dev/branches/lucene3622/lucene/CHANGES.txt
lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java
lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java
lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java
lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java
lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java
lucene/dev/branches/lucene3622/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java
lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java
lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java
lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java
lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/CheckIndex.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DirectoryReader.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FieldInfos.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FilterIndexReader.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileNames.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexReader.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexWriter.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/MultiReader.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/ParallelReader.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/PersistentSnapshotDeletionPolicy.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/SegmentCoreReaders.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/SegmentInfo.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/SegmentMerger.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/SegmentReader.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/SlowMultiReaderWrapper.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/BlockTreeTermsReader.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/BlockTreeTermsWriter.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/Codec.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingCodec.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingPostingsFormat.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/lucene3x/Lucene3xCodec.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40Codec.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextCodec.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/values/IndexDocValues.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/search/FieldValueFilter.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/search/SearcherManager.java
lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/store/MMapDirectory.java
lucene/dev/branches/lucene3622/lucene/src/test-framework/java/org/apache/lucene/analysis/CollationTestBase.java
lucene/dev/branches/lucene3622/lucene/src/test-framework/java/org/apache/lucene/index/RandomIndexWriter.java
lucene/dev/branches/lucene3622/lucene/src/test-framework/java/org/apache/lucene/search/QueryUtils.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/document/TestBinaryDocument.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestAtomicUpdate.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestCheckIndex.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestCrash.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestDoc.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexReader.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexReaderClone.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexReaderReopen.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestMultiReader.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestNorms.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestOmitNorms.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestOmitPositions.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestOmitTf.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestParallelReader.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestPayloads.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestRollback.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestStressIndexing.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSumDocFreq.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestTermVectorsWriter.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestThreadedForceMerge.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestTransactionRollback.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestTransactions.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/codecs/appending/TestAppendingCodec.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/codecs/perfield/TestPerFieldPostingsFormat.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/values/TestDocValuesIndexing.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/TestMultiTermQueryRewrites.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/TestMultiThreadTermVectors.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/spans/TestSpans.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/spans/TestSpansAdvanced2.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/store/TestBufferedIndexInput.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/store/TestFileSwitchDirectory.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/store/TestLockFactory.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/store/TestRAMDirectory.java
lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/util/TestFieldCacheSanityChecker.java
lucene/dev/branches/lucene3622/modules/analysis/common/src/test/org/apache/lucene/analysis/core/TestClassicAnalyzer.java
lucene/dev/branches/lucene3622/modules/analysis/common/src/test/org/apache/lucene/analysis/core/TestKeywordAnalyzer.java
lucene/dev/branches/lucene3622/modules/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestLimitTokenCountAnalyzer.java
lucene/dev/branches/lucene3622/modules/analysis/common/src/test/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzerTest.java
lucene/dev/branches/lucene3622/modules/analysis/common/src/test/org/apache/lucene/analysis/sinks/TestTeeSinkTokenFilter.java
lucene/dev/branches/lucene3622/modules/analysis/common/src/test/org/apache/lucene/analysis/th/TestThaiAnalyzer.java
lucene/dev/branches/lucene3622/modules/benchmark/ (props changed)
lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/CommitIndexTask.java
lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/OpenReaderTask.java
lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/PerfTask.java
lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/PrintReaderTask.java
lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/ReadTask.java
lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/QualityQueriesFinder.java
lucene/dev/branches/lucene3622/modules/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
lucene/dev/branches/lucene3622/modules/facet/ (props changed)
lucene/dev/branches/lucene3622/modules/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleMain.java
lucene/dev/branches/lucene3622/modules/facet/src/test/org/apache/lucene/facet/search/TestTotalFacetCountsCache.java
lucene/dev/branches/lucene3622/modules/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestIndexClose.java
lucene/dev/branches/lucene3622/modules/facet/src/test/org/apache/lucene/facet/util/TestScoredDocIDsUtils.java
lucene/dev/branches/lucene3622/modules/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
lucene/dev/branches/lucene3622/modules/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java
lucene/dev/branches/lucene3622/modules/queryparser/src/test/org/apache/lucene/queryparser/xml/builders/TestNumericRangeFilterBuilder.java (contents, props changed)
lucene/dev/branches/lucene3622/modules/suggest/src/test/org/apache/lucene/search/spell/TestLuceneDictionary.java
lucene/dev/branches/lucene3622/modules/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java
lucene/dev/branches/lucene3622/solr/ (props changed)
lucene/dev/branches/lucene3622/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/lucene3622/solr/build.xml (props changed)
lucene/dev/branches/lucene3622/solr/common-build.xml (props changed)
lucene/dev/branches/lucene3622/solr/contrib/ (props changed)
lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/CHANGES.txt
lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/java/ (props changed)
lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/test/org/ (props changed)
lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessor2.java
lucene/dev/branches/lucene3622/solr/core/ (props changed)
lucene/dev/branches/lucene3622/solr/core/src/java/ (props changed)
lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/core/CoreContainer.java
lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/core/IndexReaderFactory.java
lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/core/SolrCore.java
lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/core/StandardIndexReaderFactory.java
lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java
lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java
lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/spelling/SpellingQueryConverter.java
lucene/dev/branches/lucene3622/solr/core/src/test/ (props changed)
lucene/dev/branches/lucene3622/solr/core/src/test-files/solr/conf/solrconfig-elevate.xml
lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java
lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java
lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/core/TestQuerySenderNoQuery.java
lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java
lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorTest.java
lucene/dev/branches/lucene3622/solr/example/ (props changed)
lucene/dev/branches/lucene3622/solr/example/example-DIH/README.txt
lucene/dev/branches/lucene3622/solr/example/example-DIH/solr/solr.xml
lucene/dev/branches/lucene3622/solr/test-framework/ (props changed)
Modified: lucene/dev/branches/lucene3622/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/CHANGES.txt?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/lucene3622/lucene/CHANGES.txt Fri Dec 9 13:30:38 2011
@@ -207,6 +207,18 @@ Changes in backwards compatibility polic
* LUCENE-3533: Removed SpanFilters, they created large lists of objects and
did not scale. (Robert Muir)
+* LUCENE-3606: IndexReader was made read-only. It is no longer possible to
+ delete or undelete documents using IndexReader; you have to use IndexWriter
+ now. As deleting by internal Lucene docID is no longer possible, this
+ requires adding a unique identifier field to your index. Deleting/relying
+ upon Lucene docIDs is not recommended anyway, because they can change.
+ Consequently commit() was removed and IndexReader.open(), openIfChanged(),
+ and clone() no longer take readOnly booleans or IndexDeletionPolicy
+ instances. Furthermore, IndexReader.setNorm() was removed. If you need
+ customized norm values, the recommended way to do this is by modifying
+ SimilarityProvider to use an external byte[] or one of the new DocValues
+ fields (LUCENE-3108). (Uwe Schindler, Robert Muir)
+
Changes in Runtime Behavior
* LUCENE-2846: omitNorms now behaves like omitTermFrequencyAndPositions, if you
@@ -649,6 +661,13 @@ Changes in backwards compatibility polic
FieldCacheTermsFilter.FieldCacheTermsFilterDocIdSet was removed and
replaced by another internal implementation. (Uwe Schindler)
+* LUCENE-3620: FilterIndexReader now overrides all methods of IndexReader that
+ it should (note that some are still not overridden, as they should be
+ overridden by sub-classes only). In the process, some methods of IndexReader
+ were made final. This is not expected to affect many apps, since these methods
+ already delegate to abstract methods, which you had to already override
+ anyway. (Shai Erera)
+
Security fixes
* LUCENE-3588: Try harder to prevent SIGSEGV on cloned MMapIndexInputs:
@@ -669,6 +688,13 @@ Bug fixes
to correctly respect deletions on reopened SegmentReaders. Factored out
FieldCacheDocIdSet to be a top-level class. (Uwe Schindler, Simon Willnauer)
+* LUCENE-3627: Don't let an errant 0-byte segments_N file corrupt the index.
+ (Ken McCracken via Mike McCandless)
+
+Documentation
+
+* LUCENE-3597: Fixed incorrect grouping documentation. (Martijn van Groningen, Robert Muir)
+
Build
* LUCENE-3228: Stop downloading external javadoc package-list files:
Modified: lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java Fri Dec 9 13:30:38 2011
@@ -58,7 +58,7 @@ public class FieldTermStack {
// writer.addDocument( doc );
// writer.close();
- // IndexReader reader = IndexReader.open( dir, true );
+ // IndexReader reader = IndexReader.open(dir1);
// new FieldTermStack( reader, 0, "f", fieldQuery );
// reader.close();
//}
Modified: lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java Fri Dec 9 13:30:38 2011
@@ -68,7 +68,7 @@ public class HighlighterPhraseTest exten
} finally {
indexWriter.close();
}
- final IndexReader indexReader = IndexReader.open(directory, true);
+ final IndexReader indexReader = IndexReader.open(directory);
try {
assertEquals(1, indexReader.numDocs());
final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -116,7 +116,7 @@ public class HighlighterPhraseTest exten
} finally {
indexWriter.close();
}
- final IndexReader indexReader = IndexReader.open(directory, true);
+ final IndexReader indexReader = IndexReader.open(directory);
try {
assertEquals(1, indexReader.numDocs());
final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -191,7 +191,7 @@ public class HighlighterPhraseTest exten
} finally {
indexWriter.close();
}
- final IndexReader indexReader = IndexReader.open(directory, true);
+ final IndexReader indexReader = IndexReader.open(directory);
try {
assertEquals(1, indexReader.numDocs());
final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -237,7 +237,7 @@ public class HighlighterPhraseTest exten
} finally {
indexWriter.close();
}
- final IndexReader indexReader = IndexReader.open(directory, true);
+ final IndexReader indexReader = IndexReader.open(directory);
try {
assertEquals(1, indexReader.numDocs());
final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -281,7 +281,7 @@ public class HighlighterPhraseTest exten
} finally {
indexWriter.close();
}
- final IndexReader indexReader = IndexReader.open(directory, true);
+ final IndexReader indexReader = IndexReader.open(directory);
try {
assertEquals(1, indexReader.numDocs());
final IndexSearcher indexSearcher = newSearcher(indexReader);
Modified: lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java Fri Dec 9 13:30:38 2011
@@ -1677,7 +1677,7 @@ public class HighlighterTest extends Bas
* writer = new IndexWriter(ramDir,bigramAnalyzer , true); Document d = new
* Document(); Field f = new Field(FIELD_NAME, "java abc def", true, true,
* true); d.add(f); writer.addDocument(d); writer.close(); IndexReader reader =
- * IndexReader.open(ramDir, true);
+ * IndexReader.open(ramDir);
*
* IndexSearcher searcher=new IndexSearcher(reader); query =
* QueryParser.parse("abc", FIELD_NAME, bigramAnalyzer);
@@ -1763,7 +1763,7 @@ public class HighlighterTest extends Bas
writer.addDocument(doc, analyzer);
writer.forceMerge(1);
writer.close();
- reader = IndexReader.open(ramDir, true);
+ reader = IndexReader.open(ramDir);
numHighlights = 0;
}
Modified: lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java Fri Dec 9 13:30:38 2011
@@ -113,7 +113,7 @@ public class TokenSourcesTest extends Lu
} finally {
indexWriter.close();
}
- final IndexReader indexReader = IndexReader.open(directory, true);
+ final IndexReader indexReader = IndexReader.open(directory);
try {
assertEquals(1, indexReader.numDocs());
final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -162,7 +162,7 @@ public class TokenSourcesTest extends Lu
} finally {
indexWriter.close();
}
- final IndexReader indexReader = IndexReader.open(directory, true);
+ final IndexReader indexReader = IndexReader.open(directory);
try {
assertEquals(1, indexReader.numDocs());
final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -210,7 +210,7 @@ public class TokenSourcesTest extends Lu
} finally {
indexWriter.close();
}
- final IndexReader indexReader = IndexReader.open(directory, true);
+ final IndexReader indexReader = IndexReader.open(directory);
try {
assertEquals(1, indexReader.numDocs());
final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -259,7 +259,7 @@ public class TokenSourcesTest extends Lu
} finally {
indexWriter.close();
}
- final IndexReader indexReader = IndexReader.open(directory, true);
+ final IndexReader indexReader = IndexReader.open(directory);
try {
assertEquals(1, indexReader.numDocs());
final IndexSearcher indexSearcher = newSearcher(indexReader);
Modified: lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java Fri Dec 9 13:30:38 2011
@@ -364,7 +364,7 @@ public abstract class AbstractTestCase e
writer.addDocument( doc );
writer.close();
if (reader != null) reader.close();
- reader = IndexReader.open( dir, true );
+ reader = IndexReader.open(dir);
}
// make 1 doc with multi valued & not analyzed field
@@ -383,7 +383,7 @@ public abstract class AbstractTestCase e
writer.addDocument( doc );
writer.close();
if (reader != null) reader.close();
- reader = IndexReader.open( dir, true );
+ reader = IndexReader.open(dir);
}
protected void makeIndexShortMV() throws Exception {
Modified: lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java Fri Dec 9 13:30:38 2011
@@ -147,7 +147,7 @@ public class SimpleFragmentsBuilderTest
writer.addDocument( doc );
writer.close();
if (reader != null) reader.close();
- reader = IndexReader.open( dir, true );
+ reader = IndexReader.open(dir);
}
public void test1StrMV() throws Exception {
Modified: lucene/dev/branches/lucene3622/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java Fri Dec 9 13:30:38 2011
@@ -767,11 +767,11 @@ public class MemoryIndex {
}
@Override
- public int docFreq(Term term) {
- Info info = getInfo(term.field());
+ public int docFreq(String field, BytesRef term) {
+ Info info = getInfo(field);
int freq = 0;
- if (info != null) freq = info.getPositions(term.bytes()) != null ? 1 : 0;
- if (DEBUG) System.err.println("MemoryIndexReader.docFreq: " + term + ", freq:" + freq);
+ if (info != null) freq = info.getPositions(term) != null ? 1 : 0;
+ if (DEBUG) System.err.println("MemoryIndexReader.docFreq: " + field + ":" + term + ", freq:" + freq);
return freq;
}
@@ -1112,11 +1112,6 @@ public class MemoryIndex {
}
return norms;
}
-
- @Override
- protected void doSetNorm(int doc, String fieldName, byte value) {
- throw new UnsupportedOperationException();
- }
@Override
public int numDocs() {
@@ -1143,21 +1138,6 @@ public class MemoryIndex {
}
@Override
- protected void doDelete(int docNum) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- protected void doUndeleteAll() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- protected void doCommit(Map<String,String> commitUserData) {
- if (DEBUG) System.err.println("MemoryIndexReader.doCommit");
- }
-
- @Override
protected void doClose() {
if (DEBUG) System.err.println("MemoryIndexReader.doClose");
}
Modified: lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java Fri Dec 9 13:30:38 2011
@@ -49,7 +49,7 @@ public class MultiPassIndexSplitter {
/**
* Split source index into multiple parts.
- * @param input source index, can be read-only, can have deletions, can have
+ * @param in source index, can have deletions, can have
* multiple segments (or multiple readers).
* @param outputs list of directories where the output parts will be stored.
* @param seq if true, then the source index will be split into equal
@@ -57,18 +57,18 @@ public class MultiPassIndexSplitter {
* assigned in a deterministic round-robin fashion to one of the output splits.
* @throws IOException
*/
- public void split(Version version, IndexReader input, Directory[] outputs, boolean seq) throws IOException {
+ public void split(Version version, IndexReader in, Directory[] outputs, boolean seq) throws IOException {
if (outputs == null || outputs.length < 2) {
throw new IOException("Invalid number of outputs.");
}
- if (input == null || input.numDocs() < 2) {
+ if (in == null || in.numDocs() < 2) {
throw new IOException("Not enough documents for splitting");
}
int numParts = outputs.length;
// wrap a potentially read-only input
// this way we don't have to preserve original deletions because neither
// deleteDocument(int) or undeleteAll() is applied to the wrapped input index.
- input = new FakeDeleteIndexReader(input);
+ FakeDeleteIndexReader input = new FakeDeleteIndexReader(in);
int maxDoc = input.maxDoc();
int partLen = maxDoc / numParts;
for (int i = 0; i < numParts; i++) {
@@ -143,7 +143,7 @@ public class MultiPassIndexSplitter {
System.err.println("Invalid input index - skipping: " + file);
continue;
}
- indexes.add(IndexReader.open(dir, true));
+ indexes.add(IndexReader.open(dir));
}
}
if (outDir == null) {
@@ -183,7 +183,7 @@ public class MultiPassIndexSplitter {
public FakeDeleteIndexReader(IndexReader in) {
super(new SlowMultiReaderWrapper(in));
- doUndeleteAll(); // initialize main bitset
+ undeleteAll(); // initialize main bitset
}
@Override
@@ -191,12 +191,7 @@ public class MultiPassIndexSplitter {
return liveDocs.cardinality();
}
- /**
- * Just removes our overlaid deletions - does not undelete the original
- * deletions.
- */
- @Override
- protected void doUndeleteAll() {
+ void undeleteAll() {
final int maxDoc = in.maxDoc();
liveDocs = new FixedBitSet(in.maxDoc());
if (in.hasDeletions()) {
@@ -212,8 +207,7 @@ public class MultiPassIndexSplitter {
}
}
- @Override
- protected void doDelete(int n) {
+ void deleteDocument(int n) {
liveDocs.clear(n);
}
Modified: lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java Fri Dec 9 13:30:38 2011
@@ -78,7 +78,7 @@ public class HighFreqTerms {
}
}
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
TermStats[] terms = getHighFreqTerms(reader, numTerms, field);
if (!IncludeTermFreqs) {
//default HighFreqTerms behavior
Modified: lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java Fri Dec 9 13:30:38 2011
@@ -69,7 +69,7 @@ public class TestIndexSplitter extends L
String splitSegName = is.infos.info(1).name;
is.split(destDir, new String[] {splitSegName});
Directory fsDirDest = newFSDirectory(destDir);
- IndexReader r = IndexReader.open(fsDirDest, true);
+ IndexReader r = IndexReader.open(fsDirDest);
assertEquals(50, r.maxDoc());
r.close();
fsDirDest.close();
@@ -81,76 +81,17 @@ public class TestIndexSplitter extends L
IndexSplitter.main(new String[] {dir.getAbsolutePath(), destDir2.getAbsolutePath(), splitSegName});
assertEquals(4, destDir2.listFiles().length);
Directory fsDirDest2 = newFSDirectory(destDir2);
- r = IndexReader.open(fsDirDest2, true);
+ r = IndexReader.open(fsDirDest2);
assertEquals(50, r.maxDoc());
r.close();
fsDirDest2.close();
// now remove the copied segment from src
IndexSplitter.main(new String[] {dir.getAbsolutePath(), "-d", splitSegName});
- r = IndexReader.open(fsDir, true);
+ r = IndexReader.open(fsDir);
assertEquals(2, r.getSequentialSubReaders().length);
r.close();
fsDir.close();
}
- public void testDeleteThenFullMerge() throws Exception {
- // Create directories where the indexes will reside
- File indexPath = new File(TEMP_DIR, "testfilesplitter");
- _TestUtil.rmDir(indexPath);
- indexPath.mkdirs();
- File indexSplitPath = new File(TEMP_DIR, "testfilesplitterdest");
- _TestUtil.rmDir(indexSplitPath);
- indexSplitPath.mkdirs();
-
- // Create the original index
- LogMergePolicy mergePolicy = new LogByteSizeMergePolicy();
- mergePolicy.setNoCFSRatio(1);
- IndexWriterConfig iwConfig
- = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random))
- .setOpenMode(OpenMode.CREATE)
- .setMergePolicy(mergePolicy);
- Directory fsDir = newFSDirectory(indexPath);
- IndexWriter indexWriter = new IndexWriter(fsDir, iwConfig);
- Document doc = new Document();
- doc.add(new Field("content", "doc 1", StringField.TYPE_STORED));
- indexWriter.addDocument(doc);
- doc = new Document();
- doc.add(new Field("content", "doc 2", StringField.TYPE_STORED));
- indexWriter.addDocument(doc);
- indexWriter.close();
- fsDir.close();
-
- // Create the split index
- IndexSplitter indexSplitter = new IndexSplitter(indexPath);
- String splitSegName = indexSplitter.infos.info(0).name;
- indexSplitter.split(indexSplitPath, new String[] {splitSegName});
-
- // Delete the first document in the split index
- Directory fsDirDest = newFSDirectory(indexSplitPath);
- IndexReader indexReader = IndexReader.open(fsDirDest, false);
- indexReader.deleteDocument(0);
- assertEquals(1, indexReader.numDocs());
- indexReader.close();
- fsDirDest.close();
-
- // Fully merge the split index
- mergePolicy = new LogByteSizeMergePolicy();
- mergePolicy.setNoCFSRatio(1);
- iwConfig = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random))
- .setOpenMode(OpenMode.APPEND)
- .setMergePolicy(mergePolicy);
- fsDirDest = newFSDirectory(indexSplitPath);
- indexWriter = new IndexWriter(fsDirDest, iwConfig);
- indexWriter.forceMerge(1);
- indexWriter.close();
- fsDirDest.close();
-
- // Read the number of docs in the index
- fsDirDest = newFSDirectory(indexSplitPath);
- indexReader = IndexReader.open(fsDirDest);
- assertEquals(1, indexReader.numDocs());
- indexReader.close();
- fsDirDest.close();
- }
}
Modified: lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java Fri Dec 9 13:30:38 2011
@@ -41,10 +41,10 @@ public class TestMultiPassIndexSplitter
doc.add(newField("f", i + " " + i, TextField.TYPE_STORED));
w.addDocument(doc);
}
+ w.commit();
+ w.deleteDocuments(new Term("id", "" + (NUM_DOCS-1)));
w.close();
- input = IndexReader.open(dir, false);
- // delete the last doc
- input.deleteDocument(input.maxDoc() - 1);
+ input = IndexReader.open(dir);
}
@Override
@@ -66,7 +66,7 @@ public class TestMultiPassIndexSplitter
};
splitter.split(TEST_VERSION_CURRENT, input, dirs, false);
IndexReader ir;
- ir = IndexReader.open(dirs[0], true);
+ ir = IndexReader.open(dirs[0]);
assertTrue(ir.numDocs() - NUM_DOCS / 3 <= 1); // rounding error
Document doc = ir.document(0);
assertEquals("0", doc.get("id"));
@@ -74,7 +74,7 @@ public class TestMultiPassIndexSplitter
assertEquals(TermsEnum.SeekStatus.NOT_FOUND, te.seekCeil(new BytesRef("1")));
assertNotSame("1", te.term().utf8ToString());
ir.close();
- ir = IndexReader.open(dirs[1], true);
+ ir = IndexReader.open(dirs[1]);
assertTrue(ir.numDocs() - NUM_DOCS / 3 <= 1);
doc = ir.document(0);
assertEquals("1", doc.get("id"));
@@ -83,7 +83,7 @@ public class TestMultiPassIndexSplitter
assertNotSame("0", te.term().utf8ToString());
ir.close();
- ir = IndexReader.open(dirs[2], true);
+ ir = IndexReader.open(dirs[2]);
assertTrue(ir.numDocs() - NUM_DOCS / 3 <= 1);
doc = ir.document(0);
assertEquals("2", doc.get("id"));
@@ -111,19 +111,19 @@ public class TestMultiPassIndexSplitter
};
splitter.split(TEST_VERSION_CURRENT, input, dirs, true);
IndexReader ir;
- ir = IndexReader.open(dirs[0], true);
+ ir = IndexReader.open(dirs[0]);
assertTrue(ir.numDocs() - NUM_DOCS / 3 <= 1);
Document doc = ir.document(0);
assertEquals("0", doc.get("id"));
int start = ir.numDocs();
ir.close();
- ir = IndexReader.open(dirs[1], true);
+ ir = IndexReader.open(dirs[1]);
assertTrue(ir.numDocs() - NUM_DOCS / 3 <= 1);
doc = ir.document(0);
assertEquals(start + "", doc.get("id"));
start += ir.numDocs();
ir.close();
- ir = IndexReader.open(dirs[2], true);
+ ir = IndexReader.open(dirs[2]);
assertTrue(ir.numDocs() - NUM_DOCS / 3 <= 1);
doc = ir.document(0);
assertEquals(start + "", doc.get("id"));
Modified: lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java Fri Dec 9 13:30:38 2011
@@ -43,7 +43,7 @@ public class TestHighFreqTerms extends L
TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.WHITESPACE, false))
.setMaxBufferedDocs(2));
indexDocs(writer);
- reader = IndexReader.open(dir, true);
+ reader = IndexReader.open(dir);
_TestUtil.checkIndex(dir);
}
Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/CheckIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/CheckIndex.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/CheckIndex.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/CheckIndex.java Fri Dec 9 13:30:38 2011
@@ -524,7 +524,7 @@ public class CheckIndex {
}
if (infoStream != null)
infoStream.print(" test: open reader.........");
- reader = SegmentReader.get(true, info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, IOContext.DEFAULT);
+ reader = SegmentReader.get(info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, IOContext.DEFAULT);
segInfoStat.openReaderPassed = true;
Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DirectoryReader.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DirectoryReader.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DirectoryReader.java Fri Dec 9 13:30:38 2011
@@ -44,18 +44,12 @@ import org.apache.lucene.util.MapBackedS
*/
class DirectoryReader extends IndexReader implements Cloneable {
protected Directory directory;
- protected boolean readOnly;
IndexWriter writer;
- private IndexDeletionPolicy deletionPolicy;
- private Lock writeLock;
private final SegmentInfos segmentInfos;
- private boolean stale;
private final int termInfosIndexDivisor;
- private boolean rollbackHasChanges;
-
private SegmentReader[] subReaders;
private ReaderContext topLevelReaderContext;
private int[] starts; // 1st docno for each segment
@@ -63,41 +57,24 @@ class DirectoryReader extends IndexReade
private int numDocs = -1;
private boolean hasDeletions = false;
- // Max version in index as of when we opened; this can be
- // > our current segmentInfos version in case we were
- // opened on a past IndexCommit:
- private long maxIndexVersion;
-
private final boolean applyAllDeletes;
-// static IndexReader open(final Directory directory, final IndexDeletionPolicy deletionPolicy, final IndexCommit commit, final boolean readOnly,
-// final int termInfosIndexDivisor) throws CorruptIndexException, IOException {
-// return open(directory, deletionPolicy, commit, readOnly, termInfosIndexDivisor, null);
-// }
-
- static IndexReader open(final Directory directory, final IndexDeletionPolicy deletionPolicy, final IndexCommit commit, final boolean readOnly,
+ static IndexReader open(final Directory directory, final IndexCommit commit,
final int termInfosIndexDivisor) throws CorruptIndexException, IOException {
return (IndexReader) new SegmentInfos.FindSegmentsFile(directory) {
@Override
protected Object doBody(String segmentFileName) throws CorruptIndexException, IOException {
SegmentInfos infos = new SegmentInfos();
infos.read(directory, segmentFileName);
- return new DirectoryReader(directory, infos, deletionPolicy, readOnly, termInfosIndexDivisor);
+ return new DirectoryReader(directory, infos, termInfosIndexDivisor);
}
}.run(commit);
}
-
- /** Construct reading the named set of readers. */
-// DirectoryReader(Directory directory, SegmentInfos sis, IndexDeletionPolicy deletionPolicy, boolean readOnly, int termInfosIndexDivisor) throws IOException {
-// this(directory, sis, deletionPolicy, readOnly, termInfosIndexDivisor, null);
-// }
/** Construct reading the named set of readers. */
- DirectoryReader(Directory directory, SegmentInfos sis, IndexDeletionPolicy deletionPolicy, boolean readOnly, int termInfosIndexDivisor) throws IOException {
+ DirectoryReader(Directory directory, SegmentInfos sis, int termInfosIndexDivisor) throws IOException {
this.directory = directory;
- this.readOnly = readOnly;
this.segmentInfos = sis;
- this.deletionPolicy = deletionPolicy;
this.termInfosIndexDivisor = termInfosIndexDivisor;
readerFinishedListeners = new MapBackedSet<ReaderFinishedListener>(new ConcurrentHashMap<ReaderFinishedListener,Boolean>());
applyAllDeletes = false;
@@ -111,7 +88,7 @@ class DirectoryReader extends IndexReade
for (int i = sis.size()-1; i >= 0; i--) {
boolean success = false;
try {
- readers[i] = SegmentReader.get(readOnly, sis.info(i), termInfosIndexDivisor, IOContext.READ);
+ readers[i] = SegmentReader.get(sis.info(i), termInfosIndexDivisor, IOContext.READ);
readers[i].readerFinishedListeners = readerFinishedListeners;
success = true;
} finally {
@@ -134,7 +111,6 @@ class DirectoryReader extends IndexReade
// Used by near real-time search
DirectoryReader(IndexWriter writer, SegmentInfos infos, boolean applyAllDeletes) throws IOException {
this.directory = writer.getDirectory();
- this.readOnly = true;
this.applyAllDeletes = applyAllDeletes; // saved for reopen
this.termInfosIndexDivisor = writer.getConfig().getReaderTermsIndexDivisor();
@@ -186,9 +162,8 @@ class DirectoryReader extends IndexReade
/** This constructor is only used for {@link #doOpenIfChanged()} */
DirectoryReader(Directory directory, SegmentInfos infos, SegmentReader[] oldReaders,
- boolean readOnly, boolean doClone, int termInfosIndexDivisor, Collection<ReaderFinishedListener> readerFinishedListeners) throws IOException {
+ boolean doClone, int termInfosIndexDivisor, Collection<ReaderFinishedListener> readerFinishedListeners) throws IOException {
this.directory = directory;
- this.readOnly = readOnly;
this.segmentInfos = infos;
this.termInfosIndexDivisor = termInfosIndexDivisor;
this.readerFinishedListeners = readerFinishedListeners;
@@ -231,12 +206,12 @@ class DirectoryReader extends IndexReade
assert !doClone;
// this is a new reader; in case we hit an exception we can close it safely
- newReader = SegmentReader.get(readOnly, infos.info(i), termInfosIndexDivisor, IOContext.READ);
+ newReader = SegmentReader.get(infos.info(i), termInfosIndexDivisor, IOContext.READ);
newReader.readerFinishedListeners = readerFinishedListeners;
readerShared[i] = false;
newReaders[i] = newReader;
} else {
- newReader = newReaders[i].reopenSegment(infos.info(i), doClone, readOnly);
+ newReader = newReaders[i].reopenSegment(infos.info(i), doClone);
if (newReader == null) {
// this reader will be shared between the old and the new one,
// so we must incRef it
@@ -281,9 +256,6 @@ class DirectoryReader extends IndexReade
@Override
public String toString() {
final StringBuilder buffer = new StringBuilder();
- if (hasChanges) {
- buffer.append("*");
- }
buffer.append(getClass().getSimpleName());
buffer.append('(');
final String segmentsFile = segmentInfos.getCurrentSegmentFileName();
@@ -323,10 +295,6 @@ class DirectoryReader extends IndexReade
}
}
starts[subReaders.length] = maxDoc;
-
- if (!readOnly) {
- maxIndexVersion = SegmentInfos.readCurrentVersion(directory);
- }
}
@Override
@@ -337,69 +305,46 @@ class DirectoryReader extends IndexReade
@Override
public final synchronized Object clone() {
try {
- return clone(readOnly); // Preserve current readOnly
+ DirectoryReader newReader = doOpenIfChanged((SegmentInfos) segmentInfos.clone(), true);
+ newReader.writer = writer;
+ newReader.hasDeletions = hasDeletions;
+ assert newReader.readerFinishedListeners != null;
+ return newReader;
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
@Override
- public final synchronized IndexReader clone(boolean openReadOnly) throws CorruptIndexException, IOException {
- // doOpenIfChanged calls ensureOpen
- DirectoryReader newReader = doOpenIfChanged((SegmentInfos) segmentInfos.clone(), true, openReadOnly);
-
- if (this != newReader) {
- newReader.deletionPolicy = deletionPolicy;
- }
- newReader.writer = writer;
- // If we're cloning a non-readOnly reader, move the
- // writeLock (if there is one) to the new reader:
- if (!openReadOnly && writeLock != null) {
- // In near real-time search, reader is always readonly
- assert writer == null;
- newReader.writeLock = writeLock;
- newReader.hasChanges = hasChanges;
- newReader.hasDeletions = hasDeletions;
- writeLock = null;
- hasChanges = false;
- }
- assert newReader.readerFinishedListeners != null;
-
- return newReader;
- }
-
- @Override
protected final IndexReader doOpenIfChanged() throws CorruptIndexException, IOException {
- // Preserve current readOnly
- return doOpenIfChanged(readOnly, null);
- }
-
- @Override
- protected final IndexReader doOpenIfChanged(boolean openReadOnly) throws CorruptIndexException, IOException {
- return doOpenIfChanged(openReadOnly, null);
+ return doOpenIfChanged(null);
}
@Override
protected final IndexReader doOpenIfChanged(final IndexCommit commit) throws CorruptIndexException, IOException {
- return doOpenIfChanged(true, commit);
+ ensureOpen();
+
+ // If we were obtained by writer.getReader(), re-ask the
+ // writer to get a new reader.
+ if (writer != null) {
+ return doOpenFromWriter(commit);
+ } else {
+ return doOpenNoWriter(commit);
+ }
}
@Override
protected final IndexReader doOpenIfChanged(IndexWriter writer, boolean applyAllDeletes) throws CorruptIndexException, IOException {
+ ensureOpen();
if (writer == this.writer && applyAllDeletes == this.applyAllDeletes) {
- return doOpenIfChanged();
- } else {
+ return doOpenFromWriter(null);
+ } else {
+ // fail by calling supers impl throwing UOE
return super.doOpenIfChanged(writer, applyAllDeletes);
}
}
- private final IndexReader doOpenFromWriter(boolean openReadOnly, IndexCommit commit) throws CorruptIndexException, IOException {
- assert readOnly;
-
- if (!openReadOnly) {
- throw new IllegalArgumentException("a reader obtained from IndexWriter.getReader() can only be reopened with openReadOnly=true (got false)");
- }
-
+ private final IndexReader doOpenFromWriter(IndexCommit commit) throws CorruptIndexException, IOException {
if (commit != null) {
throw new IllegalArgumentException("a reader obtained from IndexWriter.getReader() cannot currently accept a commit");
}
@@ -420,56 +365,18 @@ class DirectoryReader extends IndexReade
return reader;
}
- private IndexReader doOpenIfChanged(final boolean openReadOnly, IndexCommit commit) throws CorruptIndexException, IOException {
- ensureOpen();
-
- assert commit == null || openReadOnly;
-
- // If we were obtained by writer.getReader(), re-ask the
- // writer to get a new reader.
- if (writer != null) {
- return doOpenFromWriter(openReadOnly, commit);
- } else {
- return doOpenNoWriter(openReadOnly, commit);
- }
- }
-
- private synchronized IndexReader doOpenNoWriter(final boolean openReadOnly, IndexCommit commit) throws CorruptIndexException, IOException {
+ private synchronized IndexReader doOpenNoWriter(IndexCommit commit) throws CorruptIndexException, IOException {
if (commit == null) {
- if (hasChanges) {
- // We have changes, which means we are not readOnly:
- assert readOnly == false;
- // and we hold the write lock:
- assert writeLock != null;
- // so no other writer holds the write lock, which
- // means no changes could have been done to the index:
- assert isCurrent();
-
- if (openReadOnly) {
- return clone(openReadOnly);
- } else {
- return null;
- }
- } else if (isCurrent()) {
- if (openReadOnly != readOnly) {
- // Just fallback to clone
- return clone(openReadOnly);
- } else {
- return null;
- }
+ if (isCurrent()) {
+ return null;
}
} else {
if (directory != commit.getDirectory()) {
throw new IOException("the specified commit does not match the specified Directory");
}
if (segmentInfos != null && commit.getSegmentsFileName().equals(segmentInfos.getCurrentSegmentFileName())) {
- if (readOnly != openReadOnly) {
- // Just fallback to clone
- return clone(openReadOnly);
- } else {
- return null;
- }
+ return null;
}
}
@@ -478,13 +385,13 @@ class DirectoryReader extends IndexReade
protected Object doBody(String segmentFileName) throws CorruptIndexException, IOException {
final SegmentInfos infos = new SegmentInfos();
infos.read(directory, segmentFileName);
- return doOpenIfChanged(infos, false, openReadOnly);
+ return doOpenIfChanged(infos, false);
}
}.run(commit);
}
- private synchronized DirectoryReader doOpenIfChanged(SegmentInfos infos, boolean doClone, boolean openReadOnly) throws CorruptIndexException, IOException {
- return new DirectoryReader(directory, infos, subReaders, openReadOnly, doClone, termInfosIndexDivisor, readerFinishedListeners);
+ private synchronized DirectoryReader doOpenIfChanged(SegmentInfos infos, boolean doClone) throws CorruptIndexException, IOException {
+ return new DirectoryReader(directory, infos, subReaders, doClone, termInfosIndexDivisor, readerFinishedListeners);
}
/** Version number when this IndexReader was opened. */
@@ -535,23 +442,6 @@ class DirectoryReader extends IndexReade
return hasDeletions;
}
- @Override
- protected void doDelete(int n) throws CorruptIndexException, IOException {
- numDocs = -1; // invalidate cache
- int i = readerIndex(n); // find segment num
- subReaders[i].deleteDocument(n - starts[i]); // dispatch to segment reader
- hasDeletions = true;
- }
-
- @Override
- protected void doUndeleteAll() throws CorruptIndexException, IOException {
- for (int i = 0; i < subReaders.length; i++)
- subReaders[i].undeleteAll();
-
- hasDeletions = false;
- numDocs = -1; // invalidate cache
- }
-
private int readerIndex(int n) { // find reader for doc n:
return readerIndex(n, this.starts, this.subReaders.length);
}
@@ -593,22 +483,6 @@ class DirectoryReader extends IndexReade
}
@Override
- protected void doSetNorm(int n, String field, byte value)
- throws CorruptIndexException, IOException {
- int i = readerIndex(n); // find segment num
- subReaders[i].setNorm(n-starts[i], field, value); // dispatch
- }
-
- @Override
- public int docFreq(Term t) throws IOException {
- ensureOpen();
- int total = 0; // sum freqs in segments
- for (int i = 0; i < subReaders.length; i++)
- total += subReaders[i].docFreq(t);
- return total;
- }
-
- @Override
public int docFreq(String field, BytesRef term) throws IOException {
ensureOpen();
int total = 0; // sum freqs in segments
@@ -623,150 +497,6 @@ class DirectoryReader extends IndexReade
throw new UnsupportedOperationException("please use MultiFields.getFields, or wrap your IndexReader with SlowMultiReaderWrapper, if you really need a top level Fields");
}
- /**
- * Tries to acquire the WriteLock on this directory. this method is only valid if this IndexReader is directory
- * owner.
- *
- * @throws StaleReaderException if the index has changed since this reader was opened
- * @throws CorruptIndexException if the index is corrupt
- * @throws org.apache.lucene.store.LockObtainFailedException
- * if another writer has this index open (<code>write.lock</code> could not be
- * obtained)
- * @throws IOException if there is a low-level IO error
- */
- @Override
- protected void acquireWriteLock() throws StaleReaderException, CorruptIndexException, LockObtainFailedException, IOException {
-
- if (readOnly) {
- // NOTE: we should not reach this code w/ the core
- // IndexReader classes; however, an external subclass
- // of IndexReader could reach this.
- throw new UnsupportedOperationException("This IndexReader cannot make any changes to the index (it was opened with readOnly = true)");
- }
-
- if (segmentInfos != null) {
- ensureOpen();
- if (stale)
- throw new StaleReaderException("IndexReader out of date and no longer valid for delete, undelete, or setNorm operations");
-
- if (writeLock == null) {
- Lock writeLock = directory.makeLock(IndexWriter.WRITE_LOCK_NAME);
- if (!writeLock.obtain(IndexWriterConfig.WRITE_LOCK_TIMEOUT)) // obtain write lock
- throw new LockObtainFailedException("Index locked for write: " + writeLock);
- this.writeLock = writeLock;
-
- // we have to check whether index has changed since this reader was opened.
- // if so, this reader is no longer valid for deletion
- if (SegmentInfos.readCurrentVersion(directory) > maxIndexVersion) {
- stale = true;
- this.writeLock.release();
- this.writeLock = null;
- throw new StaleReaderException("IndexReader out of date and no longer valid for delete, undelete, or setNorm operations");
- }
- }
- }
- }
-
- /**
- * Commit changes resulting from delete, undeleteAll, or setNorm operations
- * <p/>
- * If an exception is hit, then either no changes or all changes will have been committed to the index (transactional
- * semantics).
- *
- * @throws IOException if there is a low-level IO error
- */
- @Override
- protected void doCommit(Map<String,String> commitUserData) throws IOException {
- // poll subreaders for changes
- for (int i = 0; !hasChanges && i < subReaders.length; i++) {
- hasChanges |= subReaders[i].hasChanges;
- }
-
- if (hasChanges) {
- segmentInfos.setUserData(commitUserData);
- // Default deleter (for backwards compatibility) is
- // KeepOnlyLastCommitDeleter:
- // TODO: Decide what to do with InfoStream here? Use default or keep NO_OUTPUT?
- IndexFileDeleter deleter = new IndexFileDeleter(directory,
- deletionPolicy == null ? new KeepOnlyLastCommitDeletionPolicy() : deletionPolicy,
- segmentInfos, InfoStream.NO_OUTPUT, null);
- segmentInfos.updateGeneration(deleter.getLastSegmentInfos());
- segmentInfos.changed();
-
- // Checkpoint the state we are about to change, in
- // case we have to roll back:
- startCommit();
-
- final List<SegmentInfo> rollbackSegments = segmentInfos.createBackupSegmentInfos(false);
-
- boolean success = false;
- try {
- for (int i = 0; i < subReaders.length; i++)
- subReaders[i].commit();
-
- // Remove segments that contain only 100% deleted
- // docs:
- segmentInfos.pruneDeletedSegments();
-
- // Sync all files we just wrote
- directory.sync(segmentInfos.files(directory, false));
- segmentInfos.commit(directory, segmentInfos.codecFormat());
- success = true;
- } finally {
-
- if (!success) {
-
- // Rollback changes that were made to
- // SegmentInfos but failed to get [fully]
- // committed. This way this reader instance
- // remains consistent (matched to what's
- // actually in the index):
- rollbackCommit();
-
- // Recompute deletable files & remove them (so
- // partially written .del files, etc, are
- // removed):
- deleter.refresh();
-
- // Restore all SegmentInfos (in case we pruned some)
- segmentInfos.rollbackSegmentInfos(rollbackSegments);
- }
- }
-
- // Have the deleter remove any now unreferenced
- // files due to this commit:
- deleter.checkpoint(segmentInfos, true);
- deleter.close();
-
- maxIndexVersion = segmentInfos.getVersion();
-
- if (writeLock != null) {
- writeLock.release(); // release write lock
- writeLock = null;
- }
- }
- hasChanges = false;
- }
-
- void startCommit() {
- rollbackHasChanges = hasChanges;
- for (int i = 0; i < subReaders.length; i++) {
- subReaders[i].startCommit();
- }
- }
-
- void rollbackCommit() {
- hasChanges = rollbackHasChanges;
- for (int i = 0; i < subReaders.length; i++) {
- subReaders[i].rollbackCommit();
- }
- }
-
- @Override
- public long getUniqueTermCount() throws IOException {
- return -1;
- }
-
@Override
public Map<String,String> getCommitUserData() {
ensureOpen();
Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java Fri Dec 9 13:30:38 2011
@@ -52,7 +52,7 @@ import org.apache.lucene.util.InfoStream
* are processing the document).
*
* Other consumers, eg {@link FreqProxTermsWriter} and
- * {@link NormsWriter}, buffer bytes in RAM and flush only
+ * {@link NormsConsumer}, buffer bytes in RAM and flush only
* when a new segment is produced.
* Once we have used our allowed RAM buffer, or the number
Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java Fri Dec 9 13:30:38 2011
@@ -79,7 +79,7 @@ public class DocumentsWriterPerThread {
final InvertedDocConsumer termsHash = new TermsHash(documentsWriterPerThread, freqProxWriter, true,
new TermsHash(documentsWriterPerThread, termVectorsWriter, false, null));
- final NormsWriter normsWriter = new NormsWriter();
+ final NormsConsumer normsWriter = new NormsConsumer(documentsWriterPerThread);
final DocInverter docInverter = new DocInverter(documentsWriterPerThread.docState, termsHash, normsWriter);
return new DocFieldProcessor(documentsWriterPerThread, docInverter);
}
Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FieldInfos.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FieldInfos.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FieldInfos.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FieldInfos.java Fri Dec 9 13:30:38 2011
@@ -417,7 +417,7 @@ public final class FieldInfos implements
public boolean hasNorms() {
for (FieldInfo fi : this) {
- if (!fi.omitNorms) {
+ if (fi.isIndexed && !fi.omitNorms) {
return true;
}
}
Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FilterIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FilterIndexReader.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FilterIndexReader.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FilterIndexReader.java Fri Dec 9 13:30:38 2011
@@ -277,8 +277,6 @@ public class FilterIndexReader extends I
/**
* <p>Construct a FilterIndexReader based on the specified base reader.
- * Directory locking for delete, undeleteAll, and setNorm operations is
- * left to the base reader.</p>
* <p>Note that base reader is closed if this FilterIndexReader is closed.</p>
* @param in specified base reader.
*/
@@ -332,9 +330,6 @@ public class FilterIndexReader extends I
}
@Override
- protected void doUndeleteAll() throws CorruptIndexException, IOException {in.undeleteAll();}
-
- @Override
public boolean hasNorms(String field) throws IOException {
ensureOpen();
return in.hasNorms(field);
@@ -347,29 +342,10 @@ public class FilterIndexReader extends I
}
@Override
- protected void doSetNorm(int d, String f, byte b) throws CorruptIndexException, IOException {
- in.setNorm(d, f, b);
- }
-
- @Override
- public int docFreq(Term t) throws IOException {
- ensureOpen();
- return in.docFreq(t);
- }
-
- @Override
public int docFreq(String field, BytesRef t) throws IOException {
ensureOpen();
return in.docFreq(field, t);
}
-
- @Override
- protected void doDelete(int n) throws CorruptIndexException, IOException { in.deleteDocument(n); }
-
- @Override
- protected void doCommit(Map<String,String> commitUserData) throws IOException {
- in.commit(commitUserData);
- }
@Override
protected void doClose() throws IOException {
@@ -450,4 +426,14 @@ public class FilterIndexReader extends I
ensureOpen();
return in.perDocValues();
}
+
+ @Override
+ public IndexCommit getIndexCommit() throws IOException {
+ return in.getIndexCommit();
+ }
+
+ @Override
+ public int getTermInfosIndexDivisor() {
+ return in.getTermInfosIndexDivisor();
+ }
}
Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java Fri Dec 9 13:30:38 2011
@@ -179,7 +179,7 @@ final class IndexFileDeleter {
}
sis = null;
} catch (IOException e) {
- if (SegmentInfos.generationFromSegmentsFileName(fileName) <= currentGen) {
+ if (SegmentInfos.generationFromSegmentsFileName(fileName) <= currentGen && directory.fileLength(fileName) > 0) {
throw e;
} else {
// Most likely we are opening an index that
Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileNames.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileNames.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileNames.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileNames.java Fri Dec 9 13:30:38 2011
@@ -17,8 +17,6 @@ package org.apache.lucene.index;
* limitations under the License.
*/
-import java.util.regex.Pattern;
-
import org.apache.lucene.index.codecs.Codec; // for javadocs
// TODO: put all files under codec and remove all the static extensions here
@@ -49,9 +47,6 @@ public final class IndexFileNames {
/** Name of the generation reference file name */
public static final String SEGMENTS_GEN = "segments." + GEN_EXTENSION;
-
- /** Extension of norms file */
- public static final String NORMS_EXTENSION = "nrm";
/** Extension of compound file */
public static final String COMPOUND_FILE_EXTENSION = "cfs";
@@ -65,9 +60,6 @@ public final class IndexFileNames {
/** Extension of deletes */
public static final String DELETES_EXTENSION = "del";
- /** Extension of separate norms */
- public static final String SEPARATE_NORMS_EXTENSION = "s";
-
/**
* This array contains all filename extensions used by
* Lucene's index files, with one exception, namely the
@@ -80,14 +72,9 @@ public final class IndexFileNames {
COMPOUND_FILE_ENTRIES_EXTENSION,
DELETES_EXTENSION,
GEN_EXTENSION,
- NORMS_EXTENSION,
COMPOUND_FILE_STORE_EXTENSION,
};
- public static final String[] NON_STORE_INDEX_EXTENSIONS = new String[] {
- NORMS_EXTENSION
- };
-
/**
* Computes the full file name from base, extension and generation. If the
* generation is -1, the file name is null. If it's 0, the file name is
@@ -188,17 +175,5 @@ public final class IndexFileNames {
filename = filename.substring(0, idx);
}
return filename;
- }
-
- /**
- * Returns true if the given filename ends with the separate norms file
- * pattern: {@code SEPARATE_NORMS_EXTENSION + "[0-9]+"}.
- */
- public static boolean isSeparateNormsFile(String filename) {
- int idx = filename.lastIndexOf('.');
- if (idx == -1) return false;
- String ext = filename.substring(idx + 1);
- return Pattern.matches(SEPARATE_NORMS_EXTENSION + "[0-9]+", ext);
- }
-
+ }
}