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/11/04 16:43:43 UTC
svn commit: r1197603 [5/5] - in /lucene/dev/trunk: ./ dev-tools/eclipse/
dev-tools/idea/.idea/ dev-tools/idea/lucene/ dev-tools/idea/lucene/contrib/
dev-tools/idea/lucene/contrib/misc/ lucene/ lucene/contrib/
lucene/contrib/memory/src/test/org/apache/l...
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java Fri Nov 4 15:43:35 2011
@@ -23,6 +23,7 @@ import org.apache.lucene.analysis.MockAn
import org.apache.lucene.document.Document;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.util.BytesRef;
import java.io.IOException;
@@ -74,7 +75,7 @@ public class TestSegmentMerger extends L
}
public void testMerge() throws IOException {
- SegmentMerger merger = new SegmentMerger(mergedDir, IndexWriterConfig.DEFAULT_TERM_INDEX_INTERVAL, mergedSegment, null, null, new FieldInfos(), newIOContext(random));
+ SegmentMerger merger = new SegmentMerger(mergedDir, IndexWriterConfig.DEFAULT_TERM_INDEX_INTERVAL, mergedSegment, null, null, new FieldInfos(), Codec.getDefault(), newIOContext(random));
merger.add(reader1);
merger.add(reader2);
int docsMerged = merger.merge();
@@ -82,7 +83,7 @@ public class TestSegmentMerger extends L
final FieldInfos fieldInfos = merger.fieldInfos();
//Should be able to open a new SegmentReader against the new directory
SegmentReader mergedReader = SegmentReader.get(false, mergedDir, new SegmentInfo(mergedSegment, docsMerged, mergedDir, false,
- merger.getSegmentCodecs(), fieldInfos),
+ merger.getCodec(), fieldInfos),
true, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, newIOContext(random));
assertTrue(mergedReader != null);
assertTrue(mergedReader.numDocs() == 2);
@@ -145,7 +146,7 @@ public class TestSegmentMerger extends L
w.close();
// Assert that SM fails if .del exists
- SegmentMerger sm = new SegmentMerger(dir, 1, "a", null, null, null, newIOContext(random));
+ SegmentMerger sm = new SegmentMerger(dir, 1, "a", null, null, null, Codec.getDefault(), newIOContext(random));
boolean doFail = false;
try {
sm.createCompoundFile("b1", w.segmentInfos.info(0), newIOContext(random));
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java Fri Nov 4 15:43:35 2011
@@ -26,6 +26,7 @@ import org.apache.lucene.analysis.MockAn
import org.apache.lucene.document.Document;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.codecs.lucene40.Lucene40PostingsFormat;
import org.apache.lucene.store.Directory;
@@ -74,7 +75,7 @@ public class TestSegmentTermEnum extends
public void testPrevTermAtEnd() throws IOException
{
- IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setCodecProvider(_TestUtil.alwaysCodec("Standard")));
+ IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setCodec(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat())));
addDoc(writer, "aaa bbb");
writer.close();
SegmentReader reader = getOnlySegmentReader(IndexReader.open(dir, false));
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermsEnum.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermsEnum.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermsEnum.java Fri Nov 4 15:43:35 2011
@@ -358,11 +358,7 @@ public class TestTermsEnum extends Lucen
IndexWriterConfig iwc = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random));
/*
- CoreCodecProvider cp = new CoreCodecProvider();
- cp.unregister(cp.lookup("Standard"));
- cp.register(new StandardCodec(minTermsInBlock, maxTermsInBlock));
- cp.setDefaultFieldCodec("Standard");
- iwc.setCodecProvider(cp);
+ iwc.setCodec(new StandardCodec(minTermsInBlock, maxTermsInBlock));
*/
final RandomIndexWriter w = new RandomIndexWriter(random, d, iwc);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermsEnum2.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermsEnum2.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermsEnum2.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermsEnum2.java Fri Nov 4 15:43:35 2011
@@ -29,7 +29,7 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.document.Field;
import org.apache.lucene.document.StringField;
import org.apache.lucene.index.TermsEnum.SeekStatus;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.search.AutomatonQuery;
import org.apache.lucene.search.CheckHits;
import org.apache.lucene.search.IndexSearcher;
@@ -57,7 +57,7 @@ public class TestTermsEnum2 extends Luce
super.setUp();
// we generate aweful regexps: good for testing.
// but for preflex codec, the test can be very slow, so use less iterations.
- numIterations = CodecProvider.getDefault().getFieldCodec("field").equals("PreFlex") ? 10 * RANDOM_MULTIPLIER : atLeast(50);
+ numIterations = Codec.getDefault().getName().equals("Lucene3x") ? 10 * RANDOM_MULTIPLIER : atLeast(50);
dir = newDirectory();
RandomIndexWriter writer = new RandomIndexWriter(random, dir,
newIndexWriterConfig(TEST_VERSION_CURRENT,
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/intblock/TestIntBlockCodec.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/intblock/TestIntBlockCodec.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/intblock/TestIntBlockCodec.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/intblock/TestIntBlockCodec.java Fri Nov 4 15:43:35 2011
@@ -27,7 +27,7 @@ public class TestIntBlockCodec extends L
public void testSimpleIntBlocks() throws Exception {
Directory dir = newDirectory();
- IntStreamFactory f = new MockFixedIntBlockCodec(128).getIntFactory();
+ IntStreamFactory f = new MockFixedIntBlockPostingsFormat(128).getIntFactory();
IntIndexOutput out = f.createOutput(dir, "test", newIOContext(random));
for(int i=0;i<11777;i++) {
@@ -49,7 +49,7 @@ public class TestIntBlockCodec extends L
public void testEmptySimpleIntBlocks() throws Exception {
Directory dir = newDirectory();
- IntStreamFactory f = new MockFixedIntBlockCodec(128).getIntFactory();
+ IntStreamFactory f = new MockFixedIntBlockPostingsFormat(128).getIntFactory();
IntIndexOutput out = f.createOutput(dir, "test", newIOContext(random));
// write no ints
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/Test10KPulsings.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/Test10KPulsings.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/Test10KPulsings.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/Test10KPulsings.java Fri Nov 4 15:43:35 2011
@@ -35,7 +35,8 @@ import org.apache.lucene.index.MultiFiel
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.index.codecs.Codec;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.PostingsFormat;
+import org.apache.lucene.index.codecs.lucene40.Lucene40PostingsBaseFormat;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.store.MockDirectoryWrapper;
import org.apache.lucene.util.LuceneTestCase;
@@ -51,13 +52,13 @@ import org.junit.Ignore;
public class Test10KPulsings extends LuceneTestCase {
public void test10kPulsed() throws Exception {
// we always run this test with pulsing codec.
- CodecProvider cp = _TestUtil.alwaysCodec(new PulsingCodec(1));
+ Codec cp = _TestUtil.alwaysPostingsFormat(new Pulsing40PostingsFormat(1));
File f = _TestUtil.getTempDir("10kpulsed");
MockDirectoryWrapper dir = newFSDirectory(f);
dir.setCheckIndexOnClose(false); // we do this ourselves explicitly
RandomIndexWriter iw = new RandomIndexWriter(random, dir,
- newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setCodecProvider(cp));
+ newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setCodec(cp));
Document document = new Document();
FieldType ft = new FieldType(TextField.TYPE_STORED);
@@ -101,13 +102,14 @@ public class Test10KPulsings extends Luc
*/
public void test10kNotPulsed() throws Exception {
// we always run this test with pulsing codec.
- CodecProvider cp = _TestUtil.alwaysCodec(new PulsingCodec(1));
+ int freqCutoff = _TestUtil.nextInt(random, 1, 10);
+ Codec cp = _TestUtil.alwaysPostingsFormat(new Pulsing40PostingsFormat(freqCutoff));
File f = _TestUtil.getTempDir("10knotpulsed");
MockDirectoryWrapper dir = newFSDirectory(f);
dir.setCheckIndexOnClose(false); // we do this ourselves explicitly
RandomIndexWriter iw = new RandomIndexWriter(random, dir,
- newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setCodecProvider(cp));
+ newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setCodec(cp));
Document document = new Document();
FieldType ft = new FieldType(TextField.TYPE_STORED);
@@ -123,10 +125,7 @@ public class Test10KPulsings extends Luc
NumberFormat df = new DecimalFormat("00000", new DecimalFormatSymbols(Locale.ENGLISH));
- Codec codec = cp.lookup(cp.getFieldCodec("field"));
- assertTrue(codec instanceof PulsingCodec);
- PulsingCodec pulsing = (PulsingCodec) codec;
- final int freq = pulsing.getFreqCutoff() + 1;
+ final int freq = freqCutoff + 1;
for (int i = 0; i < 10050; i++) {
StringBuilder sb = new StringBuilder();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/TestPulsingReuse.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/TestPulsingReuse.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/TestPulsingReuse.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/codecs/pulsing/TestPulsingReuse.java Fri Nov 4 15:43:35 2011
@@ -17,10 +17,8 @@ package org.apache.lucene.index.codecs.p
* limitations under the License.
*/
-import java.io.IOException;
import java.util.IdentityHashMap;
import java.util.Map;
-import java.util.Set;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
@@ -30,27 +28,10 @@ import org.apache.lucene.index.CheckInde
import org.apache.lucene.index.DocsAndPositionsEnum;
import org.apache.lucene.index.DocsEnum;
import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.PerDocWriteState;
import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.index.SegmentInfo;
-import org.apache.lucene.index.SegmentReadState;
-import org.apache.lucene.index.SegmentWriteState;
import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.index.codecs.BlockTreeTermsReader;
-import org.apache.lucene.index.codecs.BlockTreeTermsWriter;
import org.apache.lucene.index.codecs.Codec;
-import org.apache.lucene.index.codecs.CodecProvider;
-import org.apache.lucene.index.codecs.DefaultDocValuesConsumer;
-import org.apache.lucene.index.codecs.DefaultDocValuesProducer;
-import org.apache.lucene.index.codecs.FieldsConsumer;
-import org.apache.lucene.index.codecs.FieldsProducer;
-import org.apache.lucene.index.codecs.PerDocConsumer;
-import org.apache.lucene.index.codecs.PerDocValues;
-import org.apache.lucene.index.codecs.PostingsReaderBase;
-import org.apache.lucene.index.codecs.PostingsWriterBase;
-import org.apache.lucene.index.codecs.standard.StandardCodec;
-import org.apache.lucene.index.codecs.standard.StandardPostingsReader;
-import org.apache.lucene.index.codecs.standard.StandardPostingsWriter;
+import org.apache.lucene.index.codecs.nestedpulsing.NestedPulsingPostingsFormat;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.MockDirectoryWrapper;
import org.apache.lucene.util.LuceneTestCase;
@@ -63,10 +44,10 @@ public class TestPulsingReuse extends Lu
// TODO: this is a basic test. this thing is complicated, add more
public void testSophisticatedReuse() throws Exception {
// we always run this test with pulsing codec.
- CodecProvider cp = _TestUtil.alwaysCodec(new PulsingCodec(1));
+ Codec cp = _TestUtil.alwaysPostingsFormat(new Pulsing40PostingsFormat(1));
Directory dir = newDirectory();
RandomIndexWriter iw = new RandomIndexWriter(random, dir,
- newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setCodecProvider(cp));
+ newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setCodec(cp));
Document doc = new Document();
doc.add(new Field("foo", "a b b c c c d e f g g h i i j j k", TextField.TYPE_UNSTORED));
iw.addDocument(doc);
@@ -101,11 +82,11 @@ public class TestPulsingReuse extends Lu
/** tests reuse with Pulsing1(Pulsing2(Standard)) */
public void testNestedPulsing() throws Exception {
// we always run this test with pulsing codec.
- CodecProvider cp = _TestUtil.alwaysCodec(new NestedPulsing());
+ Codec cp = _TestUtil.alwaysPostingsFormat(new NestedPulsingPostingsFormat());
MockDirectoryWrapper dir = newDirectory();
dir.setCheckIndexOnClose(false); // will do this ourselves, custom codec
RandomIndexWriter iw = new RandomIndexWriter(random, dir,
- newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setCodecProvider(cp));
+ newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setCodec(cp));
Document doc = new Document();
doc.add(new Field("foo", "a b b c c c d e f g g g h i i j j k l l m m m", TextField.TYPE_UNSTORED));
// note: the reuse is imperfect, here we would have 4 enums (lost reuse when we get an enum for 'm')
@@ -138,79 +119,7 @@ public class TestPulsingReuse extends Lu
ir.close();
CheckIndex ci = new CheckIndex(dir);
- ci.checkIndex(null, cp);
+ ci.checkIndex(null);
dir.close();
}
-
- static class NestedPulsing extends Codec {
- public NestedPulsing() {
- super("NestedPulsing");
- }
-
- @Override
- public FieldsConsumer fieldsConsumer(SegmentWriteState state) throws IOException {
- PostingsWriterBase docsWriter = new StandardPostingsWriter(state);
-
- PostingsWriterBase pulsingWriterInner = new PulsingPostingsWriter(2, docsWriter);
- PostingsWriterBase pulsingWriter = new PulsingPostingsWriter(1, pulsingWriterInner);
-
- // Terms dict
- boolean success = false;
- try {
- FieldsConsumer ret = new BlockTreeTermsWriter(state, pulsingWriter,
- BlockTreeTermsWriter.DEFAULT_MIN_BLOCK_SIZE, BlockTreeTermsWriter.DEFAULT_MAX_BLOCK_SIZE);
- success = true;
- return ret;
- } finally {
- if (!success) {
- pulsingWriter.close();
- }
- }
- }
-
- @Override
- public FieldsProducer fieldsProducer(SegmentReadState state) throws IOException {
- PostingsReaderBase docsReader = new StandardPostingsReader(state.dir, state.segmentInfo, state.context, state.codecId);
- PostingsReaderBase pulsingReaderInner = new PulsingPostingsReader(docsReader);
- PostingsReaderBase pulsingReader = new PulsingPostingsReader(pulsingReaderInner);
- boolean success = false;
- try {
- FieldsProducer ret = new BlockTreeTermsReader(
- state.dir, state.fieldInfos, state.segmentInfo.name,
- pulsingReader,
- state.context,
- state.codecId,
- state.termsIndexDivisor);
- success = true;
- return ret;
- } finally {
- if (!success) {
- pulsingReader.close();
- }
- }
- }
-
- @Override
- public PerDocConsumer docsConsumer(PerDocWriteState state) throws IOException {
- return new DefaultDocValuesConsumer(state);
- }
-
- @Override
- public PerDocValues docsProducer(SegmentReadState state) throws IOException {
- return new DefaultDocValuesProducer(state);
- }
-
- @Override
- public void files(Directory dir, SegmentInfo segmentInfo, int id, Set<String> files) throws IOException {
- StandardPostingsReader.files(dir, segmentInfo, id, files);
- BlockTreeTermsReader.files(dir, segmentInfo, id, files);
- DefaultDocValuesConsumer.files(dir, segmentInfo, id, files);
- }
-
- @Override
- public void getExtensions(Set<String> extensions) {
- StandardCodec.getStandardExtensions(extensions);
- DefaultDocValuesConsumer.getExtensions(extensions);
- }
- }
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/values/TestDocValuesIndexing.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/values/TestDocValuesIndexing.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/values/TestDocValuesIndexing.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/values/TestDocValuesIndexing.java Fri Nov 4 15:43:35 2011
@@ -39,7 +39,7 @@ import org.apache.lucene.index.LogMergeP
import org.apache.lucene.index.MultiPerDocValues;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.index.codecs.PerDocValues;
import org.apache.lucene.index.values.IndexDocValues.Source;
import org.apache.lucene.search.*;
@@ -65,7 +65,7 @@ public class TestDocValuesIndexing exten
@Before
public void setUp() throws Exception {
super.setUp();
- assumeFalse("cannot work with preflex codec", CodecProvider.getDefault().getDefaultFieldCodec().equals("PreFlex"));
+ assumeFalse("cannot work with preflex codec", Codec.getDefault().getName().equals("Lucene3x"));
}
/*
@@ -140,7 +140,7 @@ public class TestDocValuesIndexing exten
indexValues(w_1, valuesPerIndex, first, values, false, 7);
w_1.commit();
assertEquals(valuesPerIndex, w_1.maxDoc());
- _TestUtil.checkIndex(d_1, w_1.getConfig().getCodecProvider());
+ _TestUtil.checkIndex(d_1);
// index second index
Directory d_2 = newDirectory();
@@ -148,7 +148,7 @@ public class TestDocValuesIndexing exten
indexValues(w_2, valuesPerIndex, second, values, false, 7);
w_2.commit();
assertEquals(valuesPerIndex, w_2.maxDoc());
- _TestUtil.checkIndex(d_2, w_2.getConfig().getCodecProvider());
+ _TestUtil.checkIndex(d_2);
Directory target = newDirectory();
IndexWriter w = new IndexWriter(target, writerConfig(random.nextBoolean()));
@@ -162,7 +162,7 @@ public class TestDocValuesIndexing exten
w.optimize(true);
w.commit();
- _TestUtil.checkIndex(target, w.getConfig().getCodecProvider());
+ _TestUtil.checkIndex(target);
assertEquals(valuesPerIndex * 2, w.maxDoc());
// check values
@@ -546,7 +546,6 @@ public class TestDocValuesIndexing exten
}
public void testMultiValuedIndexDocValuesField() throws Exception {
- assumeFalse("cannot work with preflex codec", CodecProvider.getDefault().getDefaultFieldCodec().equals("PreFlex"));
Directory d = newDirectory();
RandomIndexWriter w = new RandomIndexWriter(random, d);
Document doc = new Document();
@@ -575,7 +574,6 @@ public class TestDocValuesIndexing exten
}
public void testDifferentTypedDocValuesField() throws Exception {
- assumeFalse("cannot work with preflex codec", CodecProvider.getDefault().getDefaultFieldCodec().equals("PreFlex"));
Directory d = newDirectory();
RandomIndexWriter w = new RandomIndexWriter(random, d);
Document doc = new Document();
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/values/TestTypePromotion.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/values/TestTypePromotion.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/values/TestTypePromotion.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/values/TestTypePromotion.java Fri Nov 4 15:43:35 2011
@@ -15,7 +15,7 @@ import org.apache.lucene.index.IndexRead
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.NoMergePolicy;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.index.values.IndexDocValues.Source;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
@@ -42,8 +42,7 @@ public class TestTypePromotion extends L
@Before
public void setUp() throws Exception {
super.setUp();
- assumeFalse("cannot work with preflex codec", CodecProvider.getDefault()
- .getDefaultFieldCodec().equals("PreFlex"));
+ assumeFalse("cannot work with preflex codec", Codec.getDefault().getName().equals("Lucene3x"));
}
private static EnumSet<ValueType> INTEGERS = EnumSet.of(ValueType.VAR_INTS,
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestDocValuesScoring.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestDocValuesScoring.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestDocValuesScoring.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestDocValuesScoring.java Fri Nov 4 15:43:35 2011
@@ -28,7 +28,7 @@ import org.apache.lucene.index.IndexRead
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.IndexReader.AtomicReaderContext;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.index.values.IndexDocValues.Source;
import org.apache.lucene.search.similarities.DefaultSimilarityProvider;
import org.apache.lucene.search.similarities.Similarity;
@@ -49,7 +49,7 @@ public class TestDocValuesScoring extend
public void testSimple() throws Exception {
assumeFalse("PreFlex codec cannot work with IndexDocValues!",
- "PreFlex".equals(CodecProvider.getDefault().getDefaultFieldCodec()));
+ "Lucene3x".equals(Codec.getDefault().getName()));
Directory dir = newDirectory();
RandomIndexWriter iw = new RandomIndexWriter(random, dir);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java Fri Nov 4 15:43:35 2011
@@ -30,7 +30,7 @@ import org.apache.lucene.index.RandomInd
import org.apache.lucene.index.Term;
import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.AttributeSource;
import org.apache.lucene.util.BytesRef;
@@ -60,8 +60,8 @@ public class TestPrefixRandom extends Lu
// we generate aweful prefixes: good for testing.
// but for preflex codec, the test can be very slow, so use less iterations.
- final String codec = CodecProvider.getDefault().getFieldCodec("field");
- int num = codec.equals("PreFlex") ? 200 * RANDOM_MULTIPLIER : atLeast(1000);
+ final String codec = Codec.getDefault().getName();
+ int num = codec.equals("Lucene3x") ? 200 * RANDOM_MULTIPLIER : atLeast(1000);
for (int i = 0; i < num; i++) {
field.setValue(_TestUtil.randomUnicodeString(random, 10));
writer.addDocument(doc);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpRandom2.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpRandom2.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpRandom2.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpRandom2.java Fri Nov 4 15:43:35 2011
@@ -33,7 +33,7 @@ import org.apache.lucene.index.RandomInd
import org.apache.lucene.index.Term;
import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.AttributeSource;
import org.apache.lucene.util.BytesRef;
@@ -143,7 +143,7 @@ public class TestRegexpRandom2 extends L
public void testRegexps() throws Exception {
// we generate aweful regexps: good for testing.
// but for preflex codec, the test can be very slow, so use less iterations.
- int num = CodecProvider.getDefault().getFieldCodec(fieldName).equals("PreFlex") ? 100 * RANDOM_MULTIPLIER : atLeast(1000);
+ int num = Codec.getDefault().getName().equals("Lucene3x") ? 100 * RANDOM_MULTIPLIER : atLeast(1000);
for (int i = 0; i < num; i++) {
String reg = AutomatonTestUtil.randomRegexp(random);
if (VERBOSE) {
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestSort.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestSort.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestSort.java Fri Nov 4 15:43:35 2011
@@ -40,7 +40,7 @@ import org.apache.lucene.index.Indexable
import org.apache.lucene.index.MultiReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.index.values.ValueType;
import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.FieldValueHitQueue.Entry;
@@ -70,7 +70,7 @@ import org.junit.BeforeClass;
public class TestSort extends LuceneTestCase {
// true if our codec supports docvalues: true unless codec is preflex (3.x)
- boolean supportsDocValues = CodecProvider.getDefault().getDefaultFieldCodec().equals("PreFlex") == false;
+ boolean supportsDocValues = Codec.getDefault().getName().equals("Lucene3x") == false;
private static int NUM_STRINGS;
private IndexSearcher full;
private IndexSearcher searchX;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java Fri Nov 4 15:43:35 2011
@@ -29,7 +29,7 @@ import org.apache.lucene.index.IndexRead
import org.apache.lucene.index.OrdTermState;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.search.CollectionStatistics;
import org.apache.lucene.search.Explanation;
import org.apache.lucene.search.IndexSearcher;
@@ -564,7 +564,7 @@ public class TestSimilarityBase extends
/** Test whether all similarities return document 3 before documents 7 and 8. */
public void testHeartRanking() throws IOException {
assumeFalse("PreFlex codec does not support the stats necessary for this test!",
- "PreFlex".equals(CodecProvider.getDefault().getDefaultFieldCodec()));
+ "Lucene3x".equals(Codec.getDefault().getName()));
Query q = new TermQuery(new Term(FIELD_BODY, "heart"));
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/fst/TestFSTs.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/fst/TestFSTs.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/fst/TestFSTs.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/fst/TestFSTs.java Fri Nov 4 15:43:35 2011
@@ -40,7 +40,8 @@ import org.apache.lucene.index.RandomInd
import org.apache.lucene.index.Term;
import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
+import org.apache.lucene.index.codecs.lucene40.Lucene40PostingsFormat;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.store.Directory;
@@ -1013,10 +1014,11 @@ public class TestFSTs extends LuceneTest
// file, up until a time limit
public void testRealTerms() throws Exception {
- final String defaultCodec = CodecProvider.getDefault().getDefaultFieldCodec();
- if (defaultCodec.equals("SimpleText") || defaultCodec.equals("Memory")) {
+ // TODO: is this necessary? we use the annotation...
+ final String defaultFormat = _TestUtil.getPostingsFormat("abracadabra");
+ if (defaultFormat.equals("SimpleText") || defaultFormat.equals("Memory")) {
// no
- CodecProvider.getDefault().setDefaultFieldCodec("Standard");
+ Codec.setDefault(_TestUtil.alwaysPostingsFormat(new Lucene40PostingsFormat()));
}
final LineFileDocs docs = new LineFileDocs(random);
Modified: lucene/dev/trunk/modules/analysis/common/src/test/org/apache/lucene/collation/TestCollationKeyAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/analysis/common/src/test/org/apache/lucene/collation/TestCollationKeyAnalyzer.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/modules/analysis/common/src/test/org/apache/lucene/collation/TestCollationKeyAnalyzer.java (original)
+++ lucene/dev/trunk/modules/analysis/common/src/test/org/apache/lucene/collation/TestCollationKeyAnalyzer.java Fri Nov 4 15:43:35 2011
@@ -20,7 +20,7 @@ package org.apache.lucene.collation;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.CollationTestBase;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.util.BytesRef;
import java.text.Collator;
@@ -47,7 +47,7 @@ public class TestCollationKeyAnalyzer ex
@Override
public void setUp() throws Exception {
super.setUp();
- assumeFalse("preflex format only supports UTF-8 encoded bytes", "PreFlex".equals(CodecProvider.getDefault().getDefaultFieldCodec()));
+ assumeFalse("preflex format only supports UTF-8 encoded bytes", "Lucene3x".equals(Codec.getDefault().getName()));
}
public void testFarsiRangeFilterCollating() throws Exception {
Modified: lucene/dev/trunk/modules/analysis/icu/src/test/org/apache/lucene/collation/TestICUCollationKeyAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/analysis/icu/src/test/org/apache/lucene/collation/TestICUCollationKeyAnalyzer.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/modules/analysis/icu/src/test/org/apache/lucene/collation/TestICUCollationKeyAnalyzer.java (original)
+++ lucene/dev/trunk/modules/analysis/icu/src/test/org/apache/lucene/collation/TestICUCollationKeyAnalyzer.java Fri Nov 4 15:43:35 2011
@@ -22,7 +22,7 @@ import com.ibm.icu.text.Collator;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.CollationTestBase;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.util.BytesRef;
import java.util.Locale;
@@ -45,7 +45,7 @@ public class TestICUCollationKeyAnalyzer
@Override
public void setUp() throws Exception {
super.setUp();
- assumeFalse("preflex format only supports UTF-8 encoded bytes", "PreFlex".equals(CodecProvider.getDefault().getDefaultFieldCodec()));
+ assumeFalse("preflex format only supports UTF-8 encoded bytes", "Lucene3x".equals(Codec.getDefault().getName()));
}
public void testFarsiRangeFilterCollating() throws Exception {
Modified: lucene/dev/trunk/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/CreateIndexTask.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/CreateIndexTask.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/CreateIndexTask.java (original)
+++ lucene/dev/trunk/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/CreateIndexTask.java Fri Nov 4 15:43:35 2011
@@ -33,7 +33,7 @@ import org.apache.lucene.index.NoDeletio
import org.apache.lucene.index.NoMergePolicy;
import org.apache.lucene.index.NoMergeScheduler;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.util.Version;
@@ -133,7 +133,12 @@ public class CreateIndexTask extends Per
final String defaultCodec = config.get("default.codec", null);
if (defaultCodec != null) {
- CodecProvider.getDefault().setDefaultFieldCodec(defaultCodec);
+ try {
+ Class<? extends Codec> clazz = Class.forName(defaultCodec).asSubclass(Codec.class);
+ Codec.setDefault(clazz.newInstance());
+ } catch (Exception e) {
+ throw new RuntimeException("Couldn't instantiate Codec: " + defaultCodec, e);
+ }
}
final String mergePolicy = config.get("merge.policy",
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Fri Nov 4 15:43:35 2011
@@ -133,10 +133,8 @@ New Features
fq={!join from=name to=parent}eyes:blue
(yonik)
-* SOLR-1942: Added the ability to select codec per fieldType in schema.xml
- as well as support custom CodecProviders in solrconfig.xml.
- NOTE: IndexReaderFactory now has a codecProvider that should be passed
- to IndexReader.open (in the case you have a custom IndexReaderFactory).
+* SOLR-1942: Added the ability to select postings format per fieldType in schema.xml
+ as well as support custom Codecs in solrconfig.xml.
(simonw via rmuir)
* SOLR-2136: Boolean type added to function queries, along with
Modified: lucene/dev/trunk/solr/contrib/analysis-extras/src/test/org/apache/solr/schema/TestICUCollationField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/analysis-extras/src/test/org/apache/solr/schema/TestICUCollationField.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/analysis-extras/src/test/org/apache/solr/schema/TestICUCollationField.java (original)
+++ lucene/dev/trunk/solr/contrib/analysis-extras/src/test/org/apache/solr/schema/TestICUCollationField.java Fri Nov 4 15:43:35 2011
@@ -22,7 +22,7 @@ import java.io.FileOutputStream;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.solr.SolrTestCaseJ4;
import org.junit.BeforeClass;
@@ -37,7 +37,7 @@ public class TestICUCollationField exten
@BeforeClass
public static void beforeClass() throws Exception {
- assumeFalse("preflex format only supports UTF-8 encoded bytes", "PreFlex".equals(CodecProvider.getDefault().getDefaultFieldCodec()));
+ assumeFalse("preflex format only supports UTF-8 encoded bytes", "Lucene3x".equals(Codec.getDefault().getName()));
String home = setupSolrHome();
initCore("solrconfig.xml","schema.xml", home);
// add some docs
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/IndexReaderFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/IndexReaderFactory.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/IndexReaderFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/IndexReaderFactory.java Fri Nov 4 15:43:35 2011
@@ -19,7 +19,6 @@ package org.apache.solr.core;
import java.io.IOException;
import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.codecs.CodecProvider;
import org.apache.lucene.store.Directory;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.util.plugin.NamedListInitializedPlugin;
@@ -29,7 +28,6 @@ import org.apache.solr.util.plugin.Named
*/
public abstract class IndexReaderFactory implements NamedListInitializedPlugin {
protected int termInfosIndexDivisor = 1;//IndexReader.DEFAULT_TERMS_INDEX_DIVISOR; Set this once Lucene makes this public.
- protected CodecProvider provider;
/**
* Potentially initializes {@link #termInfosIndexDivisor}. Overriding classes should call super.init() in order
* to make sure termInfosIndexDivisor is set.
@@ -65,11 +63,4 @@ public abstract class IndexReaderFactory
*/
public abstract IndexReader newReader(Directory indexDir, boolean readOnly)
throws IOException;
-
- /**
- * Sets the codec provider for this IndexReaderFactory
- */
- public void setCodecProvider(CodecProvider provider) {
- this.provider = provider;
- }
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrConfig.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrConfig.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrConfig.java Fri Nov 4 15:43:35 2011
@@ -35,8 +35,6 @@ import org.apache.solr.update.processor.
import org.apache.solr.spelling.QueryConverter;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.index.IndexDeletionPolicy;
-import org.apache.lucene.index.codecs.Codec;
-import org.apache.lucene.index.codecs.CodecProvider;
import org.apache.lucene.util.Version;
import org.slf4j.Logger;
@@ -200,7 +198,7 @@ public class SolrConfig extends Config {
loadPluginInfo(DirectoryFactory.class,"directoryFactory",false, true);
loadPluginInfo(IndexDeletionPolicy.class,"mainIndex/deletionPolicy",false, true);
- loadPluginInfo(CodecProviderFactory.class,"mainIndex/codecProviderFactory",false, false);
+ loadPluginInfo(CodecFactory.class,"mainIndex/codecFactory",false, false);
loadPluginInfo(IndexReaderFactory.class,"indexReaderFactory",false, true);
loadPluginInfo(UpdateRequestProcessorChain.class,"updateRequestProcessorChain",false, false);
loadPluginInfo(UpdateLog.class,"updateHandler/updateLog",false, false);
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java Fri Nov 4 15:43:35 2011
@@ -20,7 +20,7 @@ package org.apache.solr.core;
import org.apache.lucene.index.IndexDeletionPolicy;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.store.Directory;
import org.apache.solr.common.SolrException;
@@ -91,7 +91,7 @@ public final class SolrCore implements S
private IndexDeletionPolicyWrapper solrDelPolicy;
private DirectoryFactory directoryFactory;
private IndexReaderFactory indexReaderFactory;
- private final CodecProvider codecProvider;
+ private final Codec codec;
public long getStartTime() { return startTime; }
@@ -347,7 +347,6 @@ public final class SolrCore implements S
indexReaderFactory = new StandardIndexReaderFactory();
}
this.indexReaderFactory = indexReaderFactory;
- this.indexReaderFactory.setCodecProvider(codecProvider);
}
// protect via synchronized(SolrCore.class)
@@ -383,7 +382,7 @@ public final class SolrCore implements S
log.warn(logid+"Solr index directory '" + new File(indexDir) + "' doesn't exist."
+ " Creating new index...");
- SolrIndexWriter writer = new SolrIndexWriter("SolrCore.initIndex", indexDir, getDirectoryFactory(), true, schema, solrConfig.mainIndexConfig, solrDelPolicy, codecProvider, false);
+ SolrIndexWriter writer = new SolrIndexWriter("SolrCore.initIndex", indexDir, getDirectoryFactory(), true, schema, solrConfig.mainIndexConfig, solrDelPolicy, codec, false);
writer.close();
}
@@ -560,7 +559,7 @@ public final class SolrCore implements S
initDeletionPolicy();
- this.codecProvider = initCodecProvider(solrConfig, schema);
+ this.codec= initCodec(solrConfig, schema);
if (updateHandler == null) {
initDirectoryFactory();
@@ -638,18 +637,16 @@ public final class SolrCore implements S
resourceLoader.inform(infoRegistry);
}
- private CodecProvider initCodecProvider(SolrConfig solrConfig, IndexSchema schema) {
- final PluginInfo info = solrConfig.getPluginInfo(CodecProviderFactory.class.getName());
- CodecProvider cp;
+ private Codec initCodec(SolrConfig solrConfig, final IndexSchema schema) {
+ final PluginInfo info = solrConfig.getPluginInfo(CodecFactory.class.getName());
+ final CodecFactory factory;
if (info != null) {
- CodecProviderFactory factory = (CodecProviderFactory) schema.getResourceLoader().newInstance(info.className);
+ factory = (CodecFactory) schema.getResourceLoader().newInstance(info.className);
factory.init(info.initArgs);
- cp = factory.create();
} else {
- // make sure we use the default if nothing is configured
- cp = CodecProvider.getDefault();
+ factory = new DefaultCodecFactory();
}
- return new SchemaCodecProvider(schema, cp);
+ return factory.create(schema);
}
/**
@@ -1853,8 +1850,8 @@ public final class SolrCore implements S
return lst;
}
- public CodecProvider getCodecProvider() {
- return codecProvider;
+ public Codec getCodec() {
+ return codec;
}
public final class LazyQueryResponseWriterWrapper implements QueryResponseWriter {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/StandardIndexReaderFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/StandardIndexReaderFactory.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/StandardIndexReaderFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/StandardIndexReaderFactory.java Fri Nov 4 15:43:35 2011
@@ -35,6 +35,6 @@ public class StandardIndexReaderFactory
@Override
public IndexReader newReader(Directory indexDir, boolean readOnly)
throws IOException {
- return IndexReader.open(indexDir, null, readOnly, termInfosIndexDivisor, provider);
+ return IndexReader.open(indexDir, null, readOnly, termInfosIndexDivisor);
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java Fri Nov 4 15:43:35 2011
@@ -213,6 +213,7 @@ public class CoreAdminHandler extends Re
for (int i = 0; i < dirNames.length; i++) {
Directory dir = dirFactory.get(dirNames[i], core.getSolrConfig().mainIndexConfig.lockType);
dirsToBeReleased[i] = dir;
+ // TODO: why doesn't this use the IR factory? what is going on here?
readersToBeClosed[i] = IndexReader.open(dir, true);
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/FieldType.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/FieldType.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/FieldType.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/FieldType.java Fri Nov 4 15:43:35 2011
@@ -167,10 +167,10 @@ public abstract class FieldType extends
initArgs.remove("positionIncrementGap");
}
- final String codec = initArgs.get("codec");
- if (codec != null) {
- this.codec = codec;
- initArgs.remove("codec");
+ final String postingsFormat = initArgs.get("postingsFormat");
+ if (postingsFormat != null) {
+ this.postingsFormat = postingsFormat;
+ initArgs.remove("postingsFormat");
}
if (initArgs.size() > 0) {
@@ -527,12 +527,12 @@ public abstract class FieldType extends
}
/**
- * The codec ID used for this field type
+ * The postings format used for this field type
*/
- protected String codec;
+ protected String postingsFormat;
- public String getCodec() {
- return codec;
+ public String getPostingsFormat() {
+ return postingsFormat;
}
/**
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java Fri Nov 4 15:43:35 2011
@@ -62,6 +62,9 @@ public class FileBasedSpellChecker exten
try {
loadExternalFileDictionary(core);
spellChecker.clearIndex();
+ // TODO: you should be able to specify the IWC params?
+ // TODO: if we enable this, codec gets angry since field won't exist in the schema
+ // config.setCodec(core.getCodec());
spellChecker.indexDictionary(dictionary, new IndexWriterConfig(core.getSolrConfig().luceneMatchVersion, null), false);
} catch (IOException e) {
throw new RuntimeException(e);
@@ -94,6 +97,8 @@ public class FileBasedSpellChecker exten
setMaxBufferedDocs(150).
setMergePolicy(mp).
setOpenMode(IndexWriterConfig.OpenMode.CREATE)
+ // TODO: if we enable this, codec gets angry since field won't exist in the schema
+ // .setCodec(core.getCodec())
);
List<String> lines = core.getResourceLoader().getLines(sourceLocation, characterEncoding);
@@ -106,7 +111,7 @@ public class FileBasedSpellChecker exten
writer.optimize();
writer.close();
- dictionary = new HighFrequencyDictionary(IndexReader.open(ramDir),
+ dictionary = new HighFrequencyDictionary(IndexReader.open(ramDir, true),
WORD_FIELD_NAME, 0.0f);
} else {
// check if character encoding is defined
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java Fri Nov 4 15:43:35 2011
@@ -64,7 +64,7 @@ public class IndexBasedSpellChecker exte
if (sourceLocation != null) {
try {
FSDirectory luceneIndexDir = FSDirectory.open(new File(sourceLocation));
- this.reader = IndexReader.open(luceneIndexDir);
+ this.reader = IndexReader.open(luceneIndexDir, true);
} catch (IOException e) {
throw new RuntimeException(e);
}
@@ -86,9 +86,14 @@ public class IndexBasedSpellChecker exte
// Create the dictionary
dictionary = new HighFrequencyDictionary(reader, field,
threshold);
+ // TODO: maybe whether or not to clear the index should be configurable?
+ // an incremental update is faster (just adds new terms), but if you 'expunged'
+ // old terms I think they might hang around.
spellChecker.clearIndex();
+ // TODO: you should be able to specify the IWC params?
+ // TODO: if we enable this, codec gets angry since field won't exist in the schema
+ // config.setCodec(core.getCodec());
spellChecker.indexDictionary(dictionary, new IndexWriterConfig(core.getSolrConfig().luceneMatchVersion, null), false);
-
} catch (IOException e) {
throw new RuntimeException(e);
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java Fri Nov 4 15:43:35 2011
@@ -78,7 +78,7 @@ public final class DefaultSolrCoreState
boolean removeAllExisting, boolean forceNewDirectory) throws IOException {
return new SolrIndexWriter(name, core.getNewIndexDir(),
core.getDirectoryFactory(), removeAllExisting, core.getSchema(),
- core.getSolrConfig().mainIndexConfig, core.getDeletionPolicy(), core.getCodecProvider(), forceNewDirectory);
+ core.getSolrConfig().mainIndexConfig, core.getDeletionPolicy(), core.getCodec(), forceNewDirectory);
}
@Override
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java Fri Nov 4 15:43:35 2011
@@ -29,7 +29,7 @@ import java.util.concurrent.atomic.Atomi
import org.apache.lucene.index.IndexDeletionPolicy;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.store.Directory;
import org.apache.solr.core.DirectoryFactory;
import org.apache.solr.schema.IndexSchema;
@@ -52,12 +52,12 @@ public class SolrIndexWriter extends Ind
private PrintStream infoStream;
private DirectoryFactory directoryFactory;
- public SolrIndexWriter(String name, String path, DirectoryFactory directoryFactory, boolean create, IndexSchema schema, SolrIndexConfig config, IndexDeletionPolicy delPolicy, CodecProvider codecProvider, boolean forceNewDirectory) throws IOException {
+ public SolrIndexWriter(String name, String path, DirectoryFactory directoryFactory, boolean create, IndexSchema schema, SolrIndexConfig config, IndexDeletionPolicy delPolicy, Codec codec, boolean forceNewDirectory) throws IOException {
super(
directoryFactory.get(path, config.lockType, forceNewDirectory),
config.toIndexWriterConfig(schema).
setOpenMode(create ? IndexWriterConfig.OpenMode.CREATE : IndexWriterConfig.OpenMode.APPEND).
- setIndexDeletionPolicy(delPolicy).setCodecProvider(codecProvider)
+ setIndexDeletionPolicy(delPolicy).setCodec(codec)
);
log.debug("Opened Writer " + name);
this.name = name;
Modified: lucene/dev/trunk/solr/core/src/test-files/solr/conf/schema_codec.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test-files/solr/conf/schema_codec.xml?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test-files/solr/conf/schema_codec.xml (original)
+++ lucene/dev/trunk/solr/core/src/test-files/solr/conf/schema_codec.xml Fri Nov 4 15:43:35 2011
@@ -17,9 +17,9 @@
-->
<schema name="codec" version="1.2">
<types>
- <fieldType name="string_pulsing" class="solr.StrField" codec="Pulsing"/>
- <fieldType name="string_simpletext" class="solr.StrField" codec="SimpleText"/>
- <fieldType name="string_standard" class="solr.StrField" codec="Standard"/>
+ <fieldType name="string_pulsing" class="solr.StrField" postingsFormat="Pulsing40"/>
+ <fieldType name="string_simpletext" class="solr.StrField" postingsFormat="SimpleText"/>
+ <fieldType name="string_standard" class="solr.StrField" postingsFormat="Lucene40"/>
<fieldType name="string" class="solr.StrField" />
</types>
Modified: lucene/dev/trunk/solr/core/src/test-files/solr/conf/solrconfig_codec.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test-files/solr/conf/solrconfig_codec.xml?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test-files/solr/conf/solrconfig_codec.xml (original)
+++ lucene/dev/trunk/solr/core/src/test-files/solr/conf/solrconfig_codec.xml Fri Nov 4 15:43:35 2011
@@ -19,15 +19,5 @@
<config>
<luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
- <mainIndex>
- <codecProviderFactory class="org.apache.solr.core.MockCodecProviderFactory">
- <str name="defaultCodec">Pulsing</str>
- <lst name="codecs">
- <str name="codec">org.apache.lucene.index.codecs.simpletext.SimpleTextCodec</str>
- <str name="codec">org.apache.lucene.index.codecs.preflex.PreFlexCodec</str>
- </lst>
- </codecProviderFactory>
- </mainIndex>
-
<requestHandler name="standard" class="solr.StandardRequestHandler"></requestHandler>
</config>
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/TestCollationField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/TestCollationField.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/TestCollationField.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/TestCollationField.java Fri Nov 4 15:43:35 2011
@@ -25,7 +25,7 @@ import java.util.Locale;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.solr.SolrTestCaseJ4;
import org.junit.BeforeClass;
@@ -36,7 +36,8 @@ public class TestCollationField extends
@BeforeClass
public static void beforeClass() throws Exception {
- assumeFalse("preflex format only supports UTF-8 encoded bytes", "PreFlex".equals(CodecProvider.getDefault().getDefaultFieldCodec()));
+ assumeFalse("preflex format only supports UTF-8 encoded bytes",
+ "Lucene3x".equals(Codec.getDefault().getName()));
String home = setupSolrHome();
initCore("solrconfig.xml","schema.xml", home);
// add some docs
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/function/TestFunctionQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/function/TestFunctionQuery.java?rev=1197603&r1=1197602&r2=1197603&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/function/TestFunctionQuery.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/function/TestFunctionQuery.java Fri Nov 4 15:43:35 2011
@@ -18,7 +18,7 @@
package org.apache.solr.search.function;
import org.apache.lucene.index.FieldInvertState;
-import org.apache.lucene.index.codecs.CodecProvider;
+import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.search.FieldCache;
import org.apache.lucene.search.similarities.DefaultSimilarity;
import org.apache.lucene.search.similarities.TFIDFSimilarity;
@@ -413,7 +413,7 @@ public class TestFunctionQuery extends S
*/
public void testTotalTermFreq() throws Exception {
assumeFalse("PreFlex codec does not support collection-level term stats",
- "PreFlex".equals(CodecProvider.getDefault().getDefaultFieldCodec()));
+ "Lucene3x".equals(Codec.getDefault().getName()));
clearIndex();