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?

War es hilfreich?

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
scroll top