我想创建自己的分析器,但仅对多字值应用 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
使用上面的分析器,查询字符串是“this”,没有找到结果。但我希望对于该查询,结果应包含值 1 (this),而不包含值 2 (this table)
最佳答案
你可以试试这个:
...
final StandardTokenizer src = new StandardTokenizer();
src.setReader(new StringReader("this table"));
...
关于java - 如何跳过 StopFilter 以获取单字值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35813500/