Example usage for org.apache.lucene.analysis.synonym SynonymGraphFilter SynonymGraphFilter

List of usage examples for org.apache.lucene.analysis.synonym SynonymGraphFilter SynonymGraphFilter

Introduction

In this page you can find the example usage for org.apache.lucene.analysis.synonym SynonymGraphFilter SynonymGraphFilter.

Prototype

public SynonymGraphFilter(TokenStream input, SynonymMap synonyms, boolean ignoreCase) 

Source Link

Document

Apply previously built synonyms to incoming tokens.

Usage

From source file:com.shaie.SynonymFilterExample.java

License:Apache License

@SuppressWarnings("resource")
public static void main(String[] args) throws Exception {
    final Tokenizer tok = new WhitespaceTokenizer();
    tok.setReader(new StringReader("dark sea green sea green"));

    final SynonymMap.Builder builder = new SynonymMap.Builder(true);
    addSynonym("dark sea green", "color", builder);
    addSynonym("green", "color", builder);
    addSynonym("dark sea", "color", builder);
    addSynonym("sea green", "color", builder);
    final SynonymMap synMap = builder.build();
    final TokenStream ts = new SynonymGraphFilter(tok, synMap, true);

    final CharTermAttribute termAtt = ts.addAttribute(CharTermAttribute.class);
    final PositionIncrementAttribute posIncrAtt = ts.addAttribute(PositionIncrementAttribute.class);
    final PositionLengthAttribute posLengthAtt = ts.addAttribute(PositionLengthAttribute.class);

    ts.reset();//from  w  w  w  .  j  a va 2 s  . c  o m
    int pos = -1;
    while (ts.incrementToken()) {
        pos += posIncrAtt.getPositionIncrement();
        System.out.println("term=" + termAtt + ", pos=" + pos + ", posLen=" + posLengthAtt.getPositionLength());
    }
    ts.end();
    ts.close();
}

From source file:org.elasticsearch.index.analysis.SynonymGraphFilterFactory.java

License:Apache License

@Override
public TokenStream create(TokenStream tokenStream) {
    // fst is null means no synonyms
    return synonymMap.fst == null ? tokenStream : new SynonymGraphFilter(tokenStream, synonymMap, ignoreCase);
}