public final class SynonymGraphFilter extends TokenFilter
SynonymMap
to an incoming TokenStream
, producing a fully correct graph
output. This is a replacement for SynonymFilter
, which produces
incorrect graphs for multi-token synonyms.
However, if you use this during indexing, you must follow it with
FlattenGraphFilter
to squash tokens on top of one another
like SynonymFilter
, because the indexer can't directly
consume a graph. To get fully correct positional queries when your
synonym replacements are multiple tokens, you should instead apply
synonyms using this TokenFilter
at query time and translate
the resulting graph to a TermAutomatonQuery
e.g. using
TokenStreamToTermAutomatonQuery
.
NOTE: this cannot consume an incoming graph; results will be undefined.
AttributeSource.State
Modifier and Type | Field and Description |
---|---|
static String |
TYPE_SYNONYM |
input
DEFAULT_TOKEN_ATTRIBUTE_FACTORY
Constructor and Description |
---|
SynonymGraphFilter(TokenStream input,
SynonymMap synonyms,
boolean ignoreCase) |
Modifier and Type | Method and Description |
---|---|
boolean |
incrementToken() |
void |
reset() |
close, end
addAttribute, addAttributeImpl, captureState, clearAttributes, cloneAttributes, copyTo, endAttributes, equals, getAttribute, getAttributeClassesIterator, getAttributeFactory, getAttributeImplsIterator, hasAttribute, hasAttributes, hashCode, reflectAsString, reflectWith, removeAllAttributes, restoreState, toString
public static final String TYPE_SYNONYM
public SynonymGraphFilter(TokenStream input, SynonymMap synonyms, boolean ignoreCase)
public boolean incrementToken() throws IOException
incrementToken
in class TokenStream
IOException
public void reset() throws IOException
reset
in class TokenFilter
IOException
Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.