我想创建自己的分析器,但只对多字值应用StopFilter,仍然使用单字值(停用词本身)索引停用词
new Analyzer() {
protected Analyzer.TokenStreamComponents createComponents(String fieldName) {
final StandardTokenizer src = new StandardTokenizer();
TokenStream tok = new StandardFilter(src);
tok = new LowerCaseFilter(tok);
tok = new StopFilter(tok, StandardAnalyzer.STOP_WORDS_SET);
return new Analyzer.TokenStreamComponents(src, tok);
}
}
示例,我有2个值:
1. this
2. this table
3. table
使用上面的Analyzer,查询字符串是"这个",没有找到结果。但我希望使用该查询,结果应包含值1(此),而不包含值2(此表)
答案 0 :(得分:0)
你可以试试这个:
...
final StandardTokenizer src = new StandardTokenizer();
src.setReader(new StringReader("this table"));
...
答案 1 :(得分:0)
没有选项,你需要建立自己的StopFilter。