我正在使用Lucene.net在Asp.net应用程序中实现全文搜索功能。搜索结果页面应高亮显示匹配项。我得到了Lucene.Net.Search.Hits的实例,并使用.Doc(int i)方法获取Lucene Document。
但我不知道如何通过某些Lucene类的现有方法或属性来获取匹配项的位置。 Lucene.net是否提供支持高亮度查询字符串的任何功能?
答案 0 :(得分:1)
答案 1 :(得分:0)
正如之前的回答者所说,你应该使用来自contrib的Highlighter或FastVectorHighlighter。
以下是使用Highlighter lib获取突出显示的片段的示例:
Formatter formatter = new SimpleHTMLFormatter("<span><b>", "</b></span>");
Lucene.Net.Highlight.Scorer scorer = new QueryScorer(query, field);
Lucene.Net.Highlight.Encoder encoder = new SimpleHTMLEncoder();
var highlighter = new Highlighter(formatter, encoder, scorer);
highlighter.SetTextFragmenter(new SimpleFragmenter(100));
string[] fragments =
highlighter.GetBestFragments(DefaultAnalyzer, field, doc.Get(field), 3);
与荧光笔有关的一些问题:
要突出显示某个字段,应将其添加到使用Field.Store.YES
选项的索引
在将查询传递给荧光笔