EdgeNGramTokenFilterをコンパスクエリに追加するにはどうすればよいですか?
-
05-07-2019 - |
質問
コンパスを使用してオートコンプリート機能を構築しています。コンパスクエリに EdgeNGramTokenFilter を追加する必要がありますが、追加方法がわかりません。
これは可能ですか?
解決
EdgeNGramTokenFilter
タグ内に次の行を追加してcompass.config.xml
ファイルに参照を追加するプロバイダークラスを作成して、<searchEngine>
フィルターを追加しました
<analyzerFilter name="lower" type="EdgeNGramTokenFilterProvider"/>
クラスは次のとおりです。
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 {
}
}
所属していません StackOverflow