使用 DotNetRDf.Query.FullText 创建 Lucene 索引器时出现异常

Getting exception while creating Lucene indexer using DotNetRDf.Query.FullText

您好,我正在尝试在 .Net core 3.1 中使用 DotNetRDf.Query.FullText 来创建 Lucene 索引器,但低于 运行 时间异常。你能帮忙解决这个问题吗?

System.TypeLoadException HResult=0x80131522 Message=Could not load type 'MaxFieldLength' from assembly 'Lucene.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=85089178b9ac3181'.

示例代码:

var indexer = new LuceneObjectsIndexer(new RAMDirectory(), new StandardAnalyzer(LuceneVersion), new DefaultIndexSchema());

使用的包版本: 点网RDF-2.1.6 Lucene - 4.8.0-beta00013

这似乎有些奇怪。 Lucene.net 3.x 有一个可以在 IndexWriter 构造函数中传递的 MaxFieldLength 类型,但是 Lucene.net 4.X 没有这样的类型,它是 IndexWriter class 没有接受此类参数的构造函数。

Lucene.net 3.03 ImageWriter class and compare that to Lucene.net 4.8 ImageWriter class

所以感觉 DotNetRdf 库可能被编写为依赖于 ImageWriter 构造函数,该构造函数仅在 3.X 版本的 Lucene 中可用。如果您显示完整的堆栈跟踪,可能有助于更清楚地了解情况。

查看 dotnetrdf.org site I didn't see where they document what version of Lucene they use, but this error makes it pretty clear the library is designed for Lucene.Net 3.x. I'd recommend trying to use the Lucene.Net 3.03 Nuget packages 而不是 4.8 beta 包,看看是否能解决您的问题。