【发布时间】:2009-07-29 14:00:23
【问题描述】:
我正在使用罗盘构建一些自动完成功能,我需要将 EdgeNGramTokenFilter 添加到罗盘查询中,但我看不到如何添加它。
这可能吗?
【问题讨论】:
标签: lucene compass-lucene
我正在使用罗盘构建一些自动完成功能,我需要将 EdgeNGramTokenFilter 添加到罗盘查询中,但我看不到如何添加它。
这可能吗?
【问题讨论】:
标签: lucene compass-lucene
我设法通过在compass.config.xml 文件中添加对compass.config.xml 文件的引用创建提供程序类来添加EdgeNGramTokenFilter 过滤器,方法是在<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 {
}
}
【讨论】: