You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by al...@apache.org on 2014/04/16 16:15:25 UTC

svn commit: r1587912 - in /jackrabbit/oak/trunk/oak-lucene/src/main: java/org/apache/jackrabbit/oak/plugins/index/lucene/ resources/ resources/META-INF/ resources/META-INF/services/

Author: alexparvulescu
Date: Wed Apr 16 14:15:25 2014
New Revision: 1587912

URL: http://svn.apache.org/r1587912
Log:
OAK-1737 Add Lucene Codec for disabling field compression
 - applied codec patch by Tommaso Teofili


Added:
    jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/OakCodec.java   (with props)
    jackrabbit/oak/trunk/oak-lucene/src/main/resources/
    jackrabbit/oak/trunk/oak-lucene/src/main/resources/META-INF/
    jackrabbit/oak/trunk/oak-lucene/src/main/resources/META-INF/services/
    jackrabbit/oak/trunk/oak-lucene/src/main/resources/META-INF/services/org.apache.lucene.codecs.Codec
Modified:
    jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java

Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java?rev=1587912&r1=1587911&r2=1587912&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java Wed Apr 16 14:15:25 2014
@@ -60,6 +60,7 @@ public class LuceneIndexEditorContext {
         try {
             IndexWriterConfig config = new IndexWriterConfig(VERSION, analyzer);
             config.setMergeScheduler(new SerialMergeScheduler());
+            config.setCodec(new OakCodec());
             return config;
         } finally {
             thread.setContextClassLoader(loader);

Added: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/OakCodec.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/OakCodec.java?rev=1587912&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/OakCodec.java (added)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/OakCodec.java Wed Apr 16 14:15:25 2014
@@ -0,0 +1,97 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+package org.apache.jackrabbit.oak.plugins.index.lucene;
+
+import org.apache.lucene.codecs.DocValuesFormat;
+import org.apache.lucene.codecs.FieldInfosFormat;
+import org.apache.lucene.codecs.FilterCodec;
+import org.apache.lucene.codecs.LiveDocsFormat;
+import org.apache.lucene.codecs.NormsFormat;
+import org.apache.lucene.codecs.PostingsFormat;
+import org.apache.lucene.codecs.SegmentInfoFormat;
+import org.apache.lucene.codecs.StoredFieldsFormat;
+import org.apache.lucene.codecs.TermVectorsFormat;
+import org.apache.lucene.codecs.lucene40.Lucene40LiveDocsFormat;
+import org.apache.lucene.codecs.lucene40.Lucene40StoredFieldsFormat;
+import org.apache.lucene.codecs.lucene42.Lucene42NormsFormat;
+import org.apache.lucene.codecs.lucene42.Lucene42TermVectorsFormat;
+import org.apache.lucene.codecs.lucene46.Lucene46Codec;
+import org.apache.lucene.codecs.lucene46.Lucene46FieldInfosFormat;
+import org.apache.lucene.codecs.lucene46.Lucene46SegmentInfoFormat;
+
+/**
+ * Oak specific {@link org.apache.lucene.codecs.Codec}.
+ *
+ * It simply mimics {@link org.apache.lucene.codecs.lucene46.Lucene46Codec} but with uncompressed {@link org.apache.lucene.codecs.StoredFieldsFormat}.
+ */
+public class OakCodec extends FilterCodec {
+
+    private final TermVectorsFormat vectorsFormat = new Lucene42TermVectorsFormat();
+    private final FieldInfosFormat fieldInfosFormat = new Lucene46FieldInfosFormat();
+    private final SegmentInfoFormat segmentInfosFormat = new Lucene46SegmentInfoFormat();
+    private final LiveDocsFormat liveDocsFormat = new Lucene40LiveDocsFormat();
+    private final PostingsFormat defaultFormat = PostingsFormat.forName("Lucene41");
+    private final DocValuesFormat defaultDVFormat = DocValuesFormat.forName("Lucene45");
+    private final NormsFormat normsFormat = new Lucene42NormsFormat();
+    private final StoredFieldsFormat fieldsFormat = new Lucene40StoredFieldsFormat();
+
+    public OakCodec() {
+        super("oakCodec", new Lucene46Codec());
+    }
+
+    @Override
+    public PostingsFormat postingsFormat() {
+        return defaultFormat;
+    }
+
+    @Override
+    public DocValuesFormat docValuesFormat() {
+        return defaultDVFormat;
+    }
+
+    @Override
+    public StoredFieldsFormat storedFieldsFormat() {
+        return fieldsFormat;
+    }
+
+    @Override
+    public TermVectorsFormat termVectorsFormat() {
+        return vectorsFormat;
+    }
+
+    @Override
+    public FieldInfosFormat fieldInfosFormat() {
+        return fieldInfosFormat;
+    }
+
+    @Override
+    public SegmentInfoFormat segmentInfoFormat() {
+        return segmentInfosFormat;
+    }
+
+    @Override
+    public NormsFormat normsFormat() {
+        return normsFormat;
+    }
+
+    @Override
+    public LiveDocsFormat liveDocsFormat() {
+        return liveDocsFormat;
+    }
+}

Propchange: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/OakCodec.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/oak/trunk/oak-lucene/src/main/resources/META-INF/services/org.apache.lucene.codecs.Codec
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/resources/META-INF/services/org.apache.lucene.codecs.Codec?rev=1587912&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/resources/META-INF/services/org.apache.lucene.codecs.Codec (added)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/resources/META-INF/services/org.apache.lucene.codecs.Codec Wed Apr 16 14:15:25 2014
@@ -0,0 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#  contributor license agreements.  See the NOTICE file distributed with
+#  this work for additional information regarding copyright ownership.
+#  The ASF licenses this file to You under the Apache License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with
+#  the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+org.apache.lucene.codecs.lucene40.Lucene40Codec
+org.apache.lucene.codecs.lucene41.Lucene41Codec
+org.apache.lucene.codecs.lucene42.Lucene42Codec
+org.apache.lucene.codecs.lucene45.Lucene45Codec
+org.apache.lucene.codecs.lucene46.Lucene46Codec
+org.apache.jackrabbit.oak.plugins.index.lucene.OakCodec
\ No newline at end of file