Sitecore 7 Lucene.Net.Contrib突出显示搜索结果

时间:2013-12-03 16:09:33

标签: c# sitecore lucene.net highlighting sitecore7

我正在尝试对搜索结果进行突出显示。这是我的代码的相关部分。

QueryScorer scorer = new QueryScorer(q);
Lucene.Net.Search.Highlight.IFormatter formatter = new SimpleHTMLFormatter("<b>", "</b>");
Lucene.Net.Search.Highlight.Highlighter highlighter = new Highlighter(formatter, scorer);
highlighter.TextFragmenter = new SimpleFragmenter(800);
Lucene.Net.Util.Version vers = new Lucene.Net.Util.Version();
vers = Lucene.Net.Util.Version.LUCENE_30;
TokenStream stream = new StandardAnalyzer(vers).TokenStream(string.Empty, new StringReader(text));

string s = string.Empty;
try
{
    s = highlighter.GetBestFragments(stream, text, 10, "...");
}

这里,GetBestFragments方法抛出System.MissingMethodException。 我试图用Lucene.Net.Contrib替换原来的Lucene.net dll,但这一次,我不知道应该写什么而不是TokenStream。它不存在于Lucene.Net.Contrib。* dlls。

我正在处理现有代码,我需要了解如何重写TokenStream类和GetBestFragments方法。

感谢名单

1 个答案:

答案 0 :(得分:0)

问题在于部署,新兼容的Lucene.dll被不兼容的Sitecore7 dll取代。

因此,如果引用lucene.net和lucene.net.contrib dll,它应该可以工作。

不直接解决我的问题,但这个来源值得一提。 (关于lucene.dll版本):http://laubplusco.net/sitecore-7-lucen-3-0-highlighted-results/