我正在尝试突出显示搜索结果中的单词。
我正在使用 Umbraco 和 Lucene.Net
我用NuGet安装了Lucene.Net Contrib,版本是3.0.3.0
安装前已安装2.9.4.1版本。
安装后 Lucene.Net.Contrib.Highlighter 也会添加到“引用”中
但我不能将其声明为使用 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> ");
对于荧光笔、SimpleHTMLFormatter 和 QueryScorer,
我收到“..无法找到(您是否缺少使用..)”错误
如何解决这个问题?
最佳答案
在 NuGet 包 Lucene.Net.Contrib 版本 2.9.4.1 中,三个类 Highlighter
、SimpleHTMLFormatter
和 QueryScorer
在命名空间Lucene.Net.Highlight
。
在 Lucene.Net.Contrib 版本 3.0.3 中,类已移至命名空间 Lucene.Net.Search.Highlight
。
您应该包含使用 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
关于.net - Lucene.Net 突出显示不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26295896/