Lucene.Net突出显示不起作用

时间:2014-10-10 09:16:08

标签: .net dll reference lucene lucene.net

我正在尝试突出搜索结果中的单词 我正在使用Umbraco和Lucene.Net
我用NuGet安装了Lucene.Net Contrib,它的版本是3.0.3.0
在安装之前,已安装版本2.9.4.1 安装完成后,Lucene.Net.Contrib.Highlighter也被添加到'References'中 但我不能将其声明为使用Lucene.Net.Contrib.Highlighter或使用不同的方式。 所以在某些行不能正常工作

var highlighter = Highlighter(HighlightFormatter, FragmentScorer(searchQuery, highlightField,  searcher));

private QueryScorer FragmentScorer(string searchQuery, string highlightField, IndexSearcher searcher)
{
    Query query =
        GetLuceneQueryObject(searchQuery, highlightField).Rewrite(searcher.GetIndexReader());
    return new QueryScorer(query);
}

HighlightFormatter = new SimpleHTMLFormatter("<em><strong>", "</strong></em> ");

对于Highlighter,SimpleHTMLFormatter和QueryScorer,
我得到'..无法找到(你错过了使用..)'错误

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

在NuGet包Lucene.Net.Contrib的2.9.4.1版中,在Highlighter命名空间中声明了三个类SimpleHTMLFormatterQueryScorerLucene.Net.Highlight

在Lucene.Net.Contrib 3.0.3版本中,类被移动到命名空间Lucene.Net.Search.Highlight

您应该加入using Lucene.Net.Search.Highlight。还要检查项目中的引用是否指向NuGet包3.0.3版中包含的dll。检查引用的路径 - 它应该类似于

   <base>\packages\Lucene.Net.Contrib.3.0.3\lib\net40\Lucene.Net.Contrib.Highlighter.dll

而不是

   <base>\packages\Lucene.Net.Contrib.2.9.4.1\lib\net40\Lucene.Net.Contrib.Highlighter.dll