代码之家  ›  专栏  ›  技术社区  ›  Craig Angus karan

如何将EdgeNGramTokenFilter添加到Compass查询?

  •  0
  • Craig Angus karan  · 技术社区  · 17 年前

    到compass查询,但我看不出如何添加它。

    这可能吗?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Craig Angus karan    17 年前

    我设法添加了 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 {
        }
    
    }
    
    推荐文章