.net - Lucene.Net 突出显示不起作用

标签 .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 也会添加到“引用”中 但我不能将其声明为使用 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 中,三个类 HighlighterSimpleHTMLFormatterQueryScorer 在命名空间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/

相关文章:

.net - 用于托管 WCF 集成服务的 Azure Web 应用程序或云服务

c# - ASP.NET:在某些情况下我应该担心内存泄漏吗? [C#]

java - 替换重复的 java 对象,包括所有引用

.net - 从 Coldfusion 运行 .NET dll

c# - DLL 引用位置

c# - .Net 继承 - 自动依赖引用行为问题

c++ - 内存释放 C++

.net - .net 硬问题

c# - 作为数组的 XmlSerialization 集合

debugging - 如何调试 DLL 加载失败 : Invalid access to memory location