/** * 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.solr.analysis; import org.apache.lucene.analysis.TokenStream; import java.util.Map; /** * A <code>TokenFilterFactory</code> creates a * <code>TokenFilter</code> to transform one <code>TokenStream</code> * into another. * * <p> * TokenFilterFactories are registered for <code>FieldType</code>s with the * <code>IndexSchema</code> through the <code>schema.xml</code> file. * </p> * <p> * Example <code>schema.xml</code> entry to register a TokenFilterFactory * implementation to transform tokens in a field of type "cool" * </p> * <pre> * <fieldtype name="cool" class="solr.TextField"> * <analyzer> * ... * <filter class="foo.MyTokenFilterFactory"/> * ... * </pre> * <p> * A single instance of any registered TokenFilterFactory is created * via the default constructor and is reused for each FieldType. * </p> * @version $Id: TokenFilterFactory.java 711737 2008-11-05 23:06:08Z ehatcher $ */ public interface TokenFilterFactory { /** <code>init</code> will be called just once, immediately after creation. * <p>The args are user-level initialization parameters that * may be specified when declaring the factory in the * schema.xml */ public void init(Map<String,String> args); /** * Accessor method for reporting the args used to initialize this factory. * <p> * Implementations are <strong>strongly</strong> encouraged to return * the contents of the Map passed to to the init method * </p> */ public Map<String,String> getArgs(); /** Transform the specified input TokenStream */ public TokenStream create(TokenStream input); }