我正在使用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是有道理的。
甚至可以用multisarcher突出显示?如果没有,那么有没有办法解决这个问题?