2
* Licensed to the Apache Software Foundation (ASF) under one or more
3
* contributor license agreements. See the NOTICE file distributed with
4
* this work for additional information regarding copyright ownership.
5
* The ASF licenses this file to You under the Apache License, Version 2.0
6
* (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
9
* http://www.apache.org/licenses/LICENSE-2.0
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
18
package org.apache.solr.analysis;
20
import org.apache.lucene.analysis.TokenStream;
21
import org.apache.lucene.analysis.LengthFilter;
26
* Factory for {@link LengthFilter}.
27
* <pre class="prettyprint" >
28
* <fieldType name="text_lngth" class="solr.TextField" positionIncrementGap="100">
30
* <tokenizer class="solr.WhitespaceTokenizerFactory"/>
31
* <filter class="solr.LengthFilterFactory" min="0" max="1" enablePositionIncrements="false"/>
33
* </fieldType></pre>
34
* @version $Id: LengthFilterFactory.java 1073810 2011-02-23 16:27:55Z koji $
36
public class LengthFilterFactory extends BaseTokenFilterFactory {
38
boolean enablePositionIncrements;
39
public static final String MIN_KEY = "min";
40
public static final String MAX_KEY = "max";
43
public void init(Map<String, String> args) {
45
min=Integer.parseInt(args.get(MIN_KEY));
46
max=Integer.parseInt(args.get(MAX_KEY));
47
enablePositionIncrements = getBoolean("enablePositionIncrements",false);
50
public LengthFilter create(TokenStream input) {
51
return new LengthFilter(enablePositionIncrements, input,min,max);