FAQ
I have a custom analyzer I've created so that certain fields, which are
indexed as Keywords, can be search exactly as they are typed in. Using this
custom analyzer however produces not hits. Using Luke, I can see that the
field values are identical to the values passed in on the query...

My query is: class.name:(someCaseSensitiveString.that.Can.include.Periods)


My custom Analyzer:

public static class DefaultAnalyzer extends Analyzer {
public TokenStream tokenStream(String fieldName, Reader reader) {
LOG.debug("analyzing: " + fieldName);

if ("class.name".equals(fieldName)) {
LOG.debug("not analyzing");
return new CharTokenizer(reader) {
protected boolean isTokenChar(char c) {
return true;
}
};
} else {
LOG.debug("analyzing");
StandardTokenizer tokenizer = new StandardTokenizer(reader);
TokenStream result = null;
result = new LowerCaseFilter(tokenizer);
result = new StopFilter(result,
StopAnalyzer.ENGLISH_STOP_WORDS);
result = new PorterStemFilter(result);
return result;
}
}
}




Any ideas?


Thank You



---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org

Search Discussions

  • Otis Gospodnetic at Aug 4, 2005 at 5:25 pm
    Add some debugging to the if statement that handles "class.name" field.
    My first guess is that you're not getting in that if case when
    querying.
    If that turns out to be true, consider using PerFieldAnalyzerWrapper to
    accomplish the same thing.

    Otis

    --- "Peter T. Brown" wrote:
    I have a custom analyzer I've created so that certain fields, which
    are
    indexed as Keywords, can be search exactly as they are typed in.
    Using this
    custom analyzer however produces not hits. Using Luke, I can see that
    the
    field values are identical to the values passed in on the query...

    My query is:
    class.name:(someCaseSensitiveString.that.Can.include.Periods)


    My custom Analyzer:

    public static class DefaultAnalyzer extends Analyzer {
    public TokenStream tokenStream(String fieldName, Reader
    reader) {
    LOG.debug("analyzing: " + fieldName);

    if ("class.name".equals(fieldName)) {
    LOG.debug("not analyzing");
    return new CharTokenizer(reader) {
    protected boolean isTokenChar(char c) {
    return true;
    }
    };
    } else {
    LOG.debug("analyzing");
    StandardTokenizer tokenizer = new
    StandardTokenizer(reader);
    TokenStream result = null;
    result = new LowerCaseFilter(tokenizer);
    result = new StopFilter(result,
    StopAnalyzer.ENGLISH_STOP_WORDS);
    result = new PorterStemFilter(result);
    return result;
    }
    }
    }




    Any ideas?


    Thank You



    ---------------------------------------------------------------------
    To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
    For additional commands, e-mail: java-user-help@lucene.apache.org

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
    For additional commands, e-mail: java-user-help@lucene.apache.org
  • Peter T. Brown at Aug 4, 2005 at 5:36 pm
    Thank You.

    Yes, I did check that and the CharTokenizer is correctly being used for the
    field in question.

    How should I use PerFieldAnalyzerWrapper ?




    From: Otis Gospodnetic <otis_gospodnetic@yahoo.com>
    Reply-To: <java-user@lucene.apache.org>
    Date: Thu, 4 Aug 2005 10:25:36 -0700 (PDT)
    To: <java-user@lucene.apache.org>
    Subject: Re: Using Custom Analyzer to create case sensitive queries

    PerFieldAnalyzerWrapper


    ---------------------------------------------------------------------
    To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
    For additional commands, e-mail: java-user-help@lucene.apache.org

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupjava-user @
categorieslucene
postedAug 4, '05 at 5:15p
activeAug 4, '05 at 5:36p
posts3
users2
websitelucene.apache.org

People

Translate

site design / logo © 2022 Grokbase