我正在使用 lucene.net 2.9.4(无法升级 atm)。我也在使用来自 lucene.net contrib 的 highlighter.net。当我在一个索引上搜索我的代码时,我可以让它正常工作:
QueryScorer fragmentScorer = new QueryScorer(query.Rewrite(searcher.GetIndexReader()));
Highlighter highlighter = new Highlighter(this.HighlightFormatter, fragmentScorer);
Lucene.Net.Analysis.TokenStream tokenStream = this.HighlightAnalyzer.TokenStream(highlightField, new System.IO.StringReader(value));
return highlighter.GetBestFragments(tokenStream, value, this.MaxNumHighlights, this.Separator);
return highlightField;
问题是当我的搜索器对象是多搜索器时,我没有 GetIndexReader 方法。
使用多搜索器,您在后台使用了多个阅读器,因此您没有 GetIndexReader 是有道理的。
甚至可以用多搜索器突出显示吗?如果没有,那么有没有办法做到这一点?