Wie kann ich einen EdgeNGramTokenFilter zu einem Compass-Abfrage hinzufügen?
-
05-07-2019 - |
Frage
Ich baue einig Auto-Funktionalität der Kompass und ich brauche ein EdgeNGramTokenFilter , um die Kompass Abfrage hinzuzufügen, aber ich kann nicht sehen, wie ich es hinzufügen können.
Ist das möglich?
Lösung
konnte ich das EdgeNGramTokenFilter
Filter hinzufügen, indem Sie einen Provider-Klasse erstellen einen Verweis auf sie in der compass.config.xml
Datei hinzufügen, indem Sie die folgende Zeile in den <searchEngine>
Hinzufügen von Tags
<analyzerFilter name="lower" type="EdgeNGramTokenFilterProvider"/>
Hier ist die Klasse:
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.ngram.EdgeNGramTokenFilter;
import org.apache.lucene.analysis.ngram.EdgeNGramTokenFilter.Side;
import org.compass.core.CompassException;
import org.compass.core.config.CompassSettings;
import org.compass.core.lucene.engine.analyzer.LuceneAnalyzerTokenFilterProvider;
public class EdgeNGramTokenFilterProvider implements LuceneAnalyzerTokenFilterProvider {
public TokenStream createTokenFilter(TokenStream tokenStream) {
return new EdgeNGramTokenFilter(tokenStream, Side.FRONT, 1, 20);
}
public void configure(CompassSettings settings) throws CompassException {
}
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow