Index: solr/core/src/java/org/apache/solr/analysis/CJKWidthFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/CJKWidthFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/CJKWidthFilterFactory.java (working copy) @@ -19,6 +19,7 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.cjk.CJKWidthFilter; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenFilterFactory; /** Index: solr/core/src/java/org/apache/solr/analysis/PersianNormalizationFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/PersianNormalizationFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/PersianNormalizationFilterFactory.java (working copy) @@ -21,6 +21,7 @@ import org.apache.lucene.analysis.fa.PersianNormalizationFilter; import org.apache.lucene.analysis.TokenStream; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenFilterFactory; /** Index: solr/core/src/java/org/apache/solr/analysis/CollationKeyFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/CollationKeyFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/CollationKeyFilterFactory.java (working copy) @@ -26,11 +26,8 @@ import org.apache.commons.io.IOUtils; import org.apache.lucene.analysis.TokenStream; -import org.apache.lucene.analysis.util.InitializationException; -import org.apache.lucene.analysis.util.TokenFilterFactory; +import org.apache.lucene.analysis.util.*; import org.apache.lucene.collation.CollationKeyFilter; -import org.apache.lucene.analysis.util.ResourceLoader; -import org.apache.lucene.analysis.util.ResourceLoaderAware; /** * Factory for {@link CollationKeyFilter}. Index: solr/core/src/java/org/apache/solr/analysis/HindiNormalizationFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/HindiNormalizationFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/HindiNormalizationFilterFactory.java (working copy) @@ -19,6 +19,7 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.hi.HindiNormalizationFilter; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenFilterFactory; /** Index: solr/core/src/java/org/apache/solr/analysis/GreekLowerCaseFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/GreekLowerCaseFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/GreekLowerCaseFilterFactory.java (working copy) @@ -23,6 +23,7 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.el.GreekLowerCaseFilter; import org.apache.lucene.analysis.util.InitializationException; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenFilterFactory; /** Index: solr/core/src/java/org/apache/solr/analysis/LowerCaseTokenizerFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/LowerCaseTokenizerFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/LowerCaseTokenizerFactory.java (working copy) @@ -17,8 +17,8 @@ package org.apache.solr.analysis; -import org.apache.lucene.analysis.core.LowerCaseFilter; import org.apache.lucene.analysis.core.LowerCaseTokenizer; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenizerFactory; import java.io.Reader; Index: solr/core/src/java/org/apache/solr/analysis/MappingCharFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/MappingCharFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/MappingCharFilterFactory.java (working copy) @@ -27,11 +27,8 @@ import org.apache.lucene.analysis.CharStream; import org.apache.lucene.analysis.charfilter.MappingCharFilter; import org.apache.lucene.analysis.charfilter.NormalizeCharMap; -import org.apache.lucene.analysis.util.CharFilterFactory; -import org.apache.lucene.analysis.util.InitializationException; -import org.apache.lucene.analysis.util.ResourceLoader; +import org.apache.lucene.analysis.util.*; import org.apache.solr.common.util.StrUtils; -import org.apache.lucene.analysis.util.ResourceLoaderAware; /** * Factory for {@link MappingCharFilter}. Index: solr/core/src/java/org/apache/solr/analysis/ASCIIFoldingFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/ASCIIFoldingFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/ASCIIFoldingFilterFactory.java (working copy) @@ -19,6 +19,7 @@ package org.apache.solr.analysis; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenFilterFactory; import org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilter; import org.apache.lucene.analysis.TokenStream; Index: solr/core/src/java/org/apache/solr/analysis/IndicNormalizationFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/IndicNormalizationFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/IndicNormalizationFilterFactory.java (working copy) @@ -19,6 +19,7 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.in.IndicNormalizationFilter; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenFilterFactory; /** Index: solr/core/src/java/org/apache/solr/analysis/IrishLowerCaseFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/IrishLowerCaseFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/IrishLowerCaseFilterFactory.java (working copy) @@ -19,6 +19,7 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.ga.IrishLowerCaseFilter; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenFilterFactory; /** Index: solr/core/src/java/org/apache/solr/analysis/LowerCaseFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/LowerCaseFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/LowerCaseFilterFactory.java (working copy) @@ -21,6 +21,7 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.core.LowerCaseFilter; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenFilterFactory; /** Index: solr/core/src/java/org/apache/solr/analysis/TurkishLowerCaseFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/TurkishLowerCaseFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/TurkishLowerCaseFilterFactory.java (working copy) @@ -19,6 +19,7 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.tr.TurkishLowerCaseFilter; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenFilterFactory; /** Index: solr/core/src/java/org/apache/solr/analysis/GermanNormalizationFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/GermanNormalizationFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/GermanNormalizationFilterFactory.java (working copy) @@ -19,6 +19,7 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.de.GermanNormalizationFilter; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenFilterFactory; /** Index: solr/core/src/java/org/apache/solr/analysis/MultiTermAwareComponent.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/MultiTermAwareComponent.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/MultiTermAwareComponent.java (working copy) @@ -1,31 +0,0 @@ -package org.apache.solr.analysis; - -/** - * 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. - */ - -/** Add to any analysis factory component to allow returning an - * analysis component factory for use with partial terms in prefix queries, - * wildcard queries, range query endpoints, regex queries, etc. - * - * @lucene.experimental - */ -public interface MultiTermAwareComponent { - /** Returns an analysis component to handle analysis if multi-term queries. - * The returned component must be a TokenizerFactory, TokenFilterFactory or CharFilterFactory. - */ - public Object getMultiTermComponent(); -} Index: solr/core/src/java/org/apache/solr/analysis/ArabicNormalizationFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/ArabicNormalizationFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/ArabicNormalizationFilterFactory.java (working copy) @@ -18,6 +18,7 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.ar.ArabicNormalizationFilter; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenFilterFactory; Index: solr/core/src/java/org/apache/solr/analysis/PersianCharFilterFactory.java =================================================================== --- solr/core/src/java/org/apache/solr/analysis/PersianCharFilterFactory.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/analysis/PersianCharFilterFactory.java (working copy) @@ -20,6 +20,7 @@ import org.apache.lucene.analysis.CharStream; import org.apache.lucene.analysis.fa.PersianCharFilter; import org.apache.lucene.analysis.util.CharFilterFactory; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; /** * Factory for {@link PersianCharFilter}. Index: solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java =================================================================== --- solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java (revision 1335331) +++ solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java (working copy) @@ -19,13 +19,9 @@ import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.core.KeywordAnalyzer; -import org.apache.lucene.analysis.util.CharFilterFactory; -import org.apache.lucene.analysis.util.TokenFilterFactory; -import org.apache.lucene.analysis.util.TokenizerFactory; +import org.apache.lucene.analysis.util.*; import org.apache.lucene.util.Version; -import org.apache.lucene.analysis.util.ResourceLoader; import org.apache.solr.analysis.KeywordTokenizerFactory; -import org.apache.solr.analysis.MultiTermAwareComponent; import org.apache.solr.analysis.TokenizerChain; import org.apache.solr.common.SolrException; import org.apache.solr.util.DOMUtil; Index: solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUFoldingFilterFactory.java =================================================================== --- solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUFoldingFilterFactory.java (revision 1335331) +++ solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUFoldingFilterFactory.java (working copy) @@ -2,6 +2,7 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.icu.ICUFoldingFilter; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenFilterFactory; /** Index: solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUNormalizer2FilterFactory.java =================================================================== --- solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUNormalizer2FilterFactory.java (revision 1335331) +++ solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUNormalizer2FilterFactory.java (working copy) @@ -21,6 +21,7 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.icu.ICUNormalizer2Filter; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrException.ErrorCode; import org.apache.lucene.analysis.util.TokenFilterFactory; Index: solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUTransformFilterFactory.java =================================================================== --- solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUTransformFilterFactory.java (revision 1335331) +++ solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUTransformFilterFactory.java (working copy) @@ -21,6 +21,7 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.icu.ICUTransformFilter; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrException.ErrorCode; import org.apache.lucene.analysis.util.TokenFilterFactory; Index: solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUCollationKeyFilterFactory.java =================================================================== --- solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUCollationKeyFilterFactory.java (revision 1335331) +++ solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUCollationKeyFilterFactory.java (working copy) @@ -21,6 +21,7 @@ import org.apache.commons.io.IOUtils; import org.apache.lucene.analysis.TokenStream; +import org.apache.lucene.analysis.util.MultiTermAwareComponent; import org.apache.lucene.analysis.util.TokenFilterFactory; import org.apache.lucene.collation.ICUCollationKeyFilter; import org.apache.lucene.analysis.util.ResourceLoader; Index: lucene/analysis/common/src/java/org/apache/lucene/analysis/util/MultiTermAwareComponent.java =================================================================== --- lucene/analysis/common/src/java/org/apache/lucene/analysis/util/MultiTermAwareComponent.java (revision 0) +++ lucene/analysis/common/src/java/org/apache/lucene/analysis/util/MultiTermAwareComponent.java (revision 0) @@ -0,0 +1,31 @@ +package org.apache.lucene.analysis.util; + +/* + * 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. + */ + +/** Add to any analysis factory component to allow returning an + * analysis component factory for use with partial terms in prefix queries, + * wildcard queries, range query endpoints, regex queries, etc. + * + * @lucene.experimental + */ +public interface MultiTermAwareComponent { + /** Returns an analysis component to handle analysis if multi-term queries. + * The returned component must be a TokenizerFactory, TokenFilterFactory or CharFilterFactory. + */ + public Object getMultiTermComponent(); +}