Hi, I would like to write my own filter. I try to use the following class:

public class MyFilter extends TokenFilter {

        private String myField

        public SemanticQueryExpansionFilter(TokenStream input, myFiled) 
        {
                super(input);
                this.myField = myField;
        }

        @SuppressWarnings("deprecation")
        public Token next() throws IOException
        {
                return parseToken(this.input.next());
        }
 
        @SuppressWarnings("deprecation")
        public Token next(Token result) throws IOException
        {
                return parseToken(this.input.next());
        }
 
        protected Token parseToken(Token input)
        {
        /* do magic stuff with in.termBuffer() here (a char[] which can be
manipulated) */
        /* set the changed length of the new term with in.setTermLength();
before returning it */
        }
}

The factory and deploying is no problem, but I have a different question.

I want to trigger my filter at the last position after I have a clear set of
Tokens. This I can configure in my analyser XML-configuration.

My object from type MyFilter becomes in the constructor a input TokenStream.
I assume that this is a "list" of Tokens. The methods "next" use the
"parseToken" method. This is ok, the next Token from the input will be get
an a modified Token will be returned.

But this is a problem for me. The one-to-one mapping. I want to map a given
Token, for example "a" to three Tokens "a1", "a2", "a3". I want to do a
one-to-one mapping to "b" -> "c" too, and I want to have the possibility to
remove a Token "d" -> "".

How can I do this, when the "next" methods returns only one Token, not a
collection?


Thanks!

--
View this message in context: 
http://lucene.472066.n3.nabble.com/Custom-filter-development-tp2918459p2918459.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to