You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2013/07/30 22:46:20 UTC
svn commit: r1508623 - in /lucene/dev/branches/branch_4x: ./ lucene/
lucene/analysis/
lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/
lucene/core/ lucene/core/src/java/org/apache/lucene/analysis/
lucene/core/src/test/org/apach...
Author: shaie
Date: Tue Jul 30 20:46:19 2013
New Revision: 1508623
URL: http://svn.apache.org/r1508623
Log:
LUCENE-5153: Allow wrapping Reader from AnalyzerWrapper
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/lucene/ (props changed)
lucene/dev/branches/branch_4x/lucene/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_4x/lucene/analysis/ (props changed)
lucene/dev/branches/branch_4x/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/PerFieldAnalyzerWrapper.java
lucene/dev/branches/branch_4x/lucene/core/ (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/analysis/AnalyzerWrapper.java
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/analysis/TestMockAnalyzer.java
lucene/dev/branches/branch_4x/solr/ (props changed)
lucene/dev/branches/branch_4x/solr/core/ (props changed)
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
Modified: lucene/dev/branches/branch_4x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/CHANGES.txt?rev=1508623&r1=1508622&r2=1508623&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/lucene/CHANGES.txt Tue Jul 30 20:46:19 2013
@@ -33,6 +33,9 @@ New features
FacetRequest which implements createFacetsAggregator and was indexed
using the taxonomy index. (Shai Erera)
+* LUCENE-5153: AnalyzerWrapper.wrapReader allows wrapping the Reader given to
+ inputReader. (Shai Erera)
+
Bug Fixes
* LUCENE-5116: IndexWriter.addIndexes(IndexReader...) should drop empty (or all
Modified: lucene/dev/branches/branch_4x/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/PerFieldAnalyzerWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/PerFieldAnalyzerWrapper.java?rev=1508623&r1=1508622&r2=1508623&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/PerFieldAnalyzerWrapper.java (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/PerFieldAnalyzerWrapper.java Tue Jul 30 20:46:19 2013
@@ -84,11 +84,6 @@ public final class PerFieldAnalyzerWrapp
}
@Override
- protected TokenStreamComponents wrapComponents(String fieldName, TokenStreamComponents components) {
- return components;
- }
-
- @Override
public String toString() {
return "PerFieldAnalyzerWrapper(" + fieldAnalyzers + ", default=" + defaultAnalyzer + ")";
}
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/analysis/AnalyzerWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/analysis/AnalyzerWrapper.java?rev=1508623&r1=1508622&r2=1508623&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/analysis/AnalyzerWrapper.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/analysis/AnalyzerWrapper.java Tue Jul 30 20:46:19 2013
@@ -51,16 +51,35 @@ public abstract class AnalyzerWrapper ex
/**
* Wraps / alters the given TokenStreamComponents, taken from the wrapped
- * Analyzer, to form new components. It is through this method that new
- * TokenFilters can be added by AnalyzerWrappers.
- *
- *
- * @param fieldName Name of the field which is to be analyzed
- * @param components TokenStreamComponents taken from the wrapped Analyzer
+ * Analyzer, to form new components. It is through this method that new
+ * TokenFilters can be added by AnalyzerWrappers. By default, the given
+ * components are returned.
+ *
+ * @param fieldName
+ * Name of the field which is to be analyzed
+ * @param components
+ * TokenStreamComponents taken from the wrapped Analyzer
* @return Wrapped / altered TokenStreamComponents.
*/
- protected abstract TokenStreamComponents wrapComponents(String fieldName, TokenStreamComponents components);
+ protected TokenStreamComponents wrapComponents(String fieldName, TokenStreamComponents components) {
+ return components;
+ }
+ /**
+ * Wraps / alters the given Reader. Through this method AnalyzerWrappers can
+ * implement {@link #initReader(String, Reader)}. By default, the given reader
+ * is returned.
+ *
+ * @param fieldName
+ * name of the field which is to be analyzed
+ * @param reader
+ * the reader to wrap
+ * @return the wrapped reader
+ */
+ protected Reader wrapReader(String fieldName, Reader reader) {
+ return reader;
+ }
+
@Override
protected final TokenStreamComponents createComponents(String fieldName, Reader aReader) {
return wrapComponents(fieldName, getWrappedAnalyzer(fieldName).createComponents(fieldName, aReader));
@@ -78,6 +97,6 @@ public abstract class AnalyzerWrapper ex
@Override
public final Reader initReader(String fieldName, Reader reader) {
- return getWrappedAnalyzer(fieldName).initReader(fieldName, reader);
+ return getWrappedAnalyzer(fieldName).initReader(fieldName, wrapReader(fieldName, reader));
}
}
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/analysis/TestMockAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/analysis/TestMockAnalyzer.java?rev=1508623&r1=1508622&r2=1508623&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/analysis/TestMockAnalyzer.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/analysis/TestMockAnalyzer.java Tue Jul 30 20:46:19 2013
@@ -1,7 +1,9 @@
package org.apache.lucene.analysis;
+import java.io.Reader;
import java.io.StringReader;
import java.util.Arrays;
+import java.util.Random;
import org.apache.lucene.util._TestUtil;
import org.apache.lucene.util.automaton.Automaton;
@@ -128,4 +130,29 @@ public class TestMockAnalyzer extends Ba
ts.close();
}
}
+
+ public void testWrapReader() throws Exception {
+ // LUCENE-5153: test that wrapping an analyzer's reader is allowed
+ final Random random = random();
+
+ Analyzer a = new AnalyzerWrapper() {
+
+ @Override
+ protected Reader wrapReader(String fieldName, Reader reader) {
+ return new MockCharFilter(reader, 7);
+ }
+
+ @Override
+ protected TokenStreamComponents wrapComponents(String fieldName, TokenStreamComponents components) {
+ return components;
+ }
+
+ @Override
+ protected Analyzer getWrappedAnalyzer(String fieldName) {
+ return new MockAnalyzer(random);
+ }
+ };
+
+ checkOneTerm(a, "abc", "aabc");
+ }
}
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/schema/IndexSchema.java?rev=1508623&r1=1508622&r2=1508623&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/schema/IndexSchema.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/schema/IndexSchema.java Tue Jul 30 20:46:19 2013
@@ -395,10 +395,6 @@ public class IndexSchema {
return analyzer != null ? analyzer : getDynamicFieldType(fieldName).getAnalyzer();
}
- @Override
- protected TokenStreamComponents wrapComponents(String fieldName, TokenStreamComponents components) {
- return components;
- }
}
private class SolrQueryAnalyzer extends SolrIndexAnalyzer {