我正在尝试突出搜索结果中的单词
我正在使用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,
我得到'..无法找到(你错过了使用..)'错误
我该如何解决这个问题?
答案 0 :(得分:2)
在NuGet包Lucene.Net.Contrib的2.9.4.1版中,在Highlighter
命名空间中声明了三个类SimpleHTMLFormatter
,QueryScorer
和Lucene.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