X-Git-Url: https://git.mdrn.pl/pylucene.git/blobdiff_plain/a2e61f0c04805cfcb8706176758d1283c7e3a55c..aaeed5504b982cf3545252ab528713250aa33eed:/lucene-java-3.4.0/lucene/src/java/org/apache/lucene/analysis/PerFieldAnalyzerWrapper.java?ds=sidebyside diff --git a/lucene-java-3.4.0/lucene/src/java/org/apache/lucene/analysis/PerFieldAnalyzerWrapper.java b/lucene-java-3.4.0/lucene/src/java/org/apache/lucene/analysis/PerFieldAnalyzerWrapper.java deleted file mode 100644 index a640c33..0000000 --- a/lucene-java-3.4.0/lucene/src/java/org/apache/lucene/analysis/PerFieldAnalyzerWrapper.java +++ /dev/null @@ -1,131 +0,0 @@ -package org.apache.lucene.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. - */ - -import org.apache.lucene.document.Fieldable; - -import java.io.Reader; -import java.io.IOException; -import java.util.Map; -import java.util.HashMap; - -/** - * This analyzer is used to facilitate scenarios where different - * fields require different analysis techniques. Use {@link #addAnalyzer} - * to add a non-default analyzer on a field name basis. - * - *

Example usage: - * - *

- *   PerFieldAnalyzerWrapper aWrapper =
- *      new PerFieldAnalyzerWrapper(new StandardAnalyzer());
- *   aWrapper.addAnalyzer("firstname", new KeywordAnalyzer());
- *   aWrapper.addAnalyzer("lastname", new KeywordAnalyzer());
- * 
- * - *

In this example, StandardAnalyzer will be used for all fields except "firstname" - * and "lastname", for which KeywordAnalyzer will be used. - * - *

A PerFieldAnalyzerWrapper can be used like any other analyzer, for both indexing - * and query parsing. - */ -public final class PerFieldAnalyzerWrapper extends Analyzer { - private Analyzer defaultAnalyzer; - private Map analyzerMap = new HashMap(); - - - /** - * Constructs with default analyzer. - * - * @param defaultAnalyzer Any fields not specifically - * defined to use a different analyzer will use the one provided here. - */ - public PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer) { - this(defaultAnalyzer, null); - } - - /** - * Constructs with default analyzer and a map of analyzers to use for - * specific fields. - * - * @param defaultAnalyzer Any fields not specifically - * defined to use a different analyzer will use the one provided here. - * @param fieldAnalyzers a Map (String field name to the Analyzer) to be - * used for those fields - */ - public PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer, - Map fieldAnalyzers) { - this.defaultAnalyzer = defaultAnalyzer; - if (fieldAnalyzers != null) { - analyzerMap.putAll(fieldAnalyzers); - } - } - - - /** - * Defines an analyzer to use for the specified field. - * - * @param fieldName field name requiring a non-default analyzer - * @param analyzer non-default analyzer to use for field - */ - public void addAnalyzer(String fieldName, Analyzer analyzer) { - analyzerMap.put(fieldName, analyzer); - } - - @Override - public TokenStream tokenStream(String fieldName, Reader reader) { - Analyzer analyzer = analyzerMap.get(fieldName); - if (analyzer == null) { - analyzer = defaultAnalyzer; - } - - return analyzer.tokenStream(fieldName, reader); - } - - @Override - public TokenStream reusableTokenStream(String fieldName, Reader reader) throws IOException { - Analyzer analyzer = analyzerMap.get(fieldName); - if (analyzer == null) - analyzer = defaultAnalyzer; - - return analyzer.reusableTokenStream(fieldName, reader); - } - - /** Return the positionIncrementGap from the analyzer assigned to fieldName */ - @Override - public int getPositionIncrementGap(String fieldName) { - Analyzer analyzer = analyzerMap.get(fieldName); - if (analyzer == null) - analyzer = defaultAnalyzer; - return analyzer.getPositionIncrementGap(fieldName); - } - - /** Return the offsetGap from the analyzer assigned to field */ - @Override - public int getOffsetGap(Fieldable field) { - Analyzer analyzer = analyzerMap.get(field.name()); - if (analyzer == null) - analyzer = defaultAnalyzer; - return analyzer.getOffsetGap(field); - } - - @Override - public String toString() { - return "PerFieldAnalyzerWrapper(" + analyzerMap + ", default=" + defaultAnalyzer + ")"; - } -}