无法创建类型的实例:Sitecore.ContentSearch.LuceneProvider.Analyzers.DefaultPerFieldAnalyzer。找不到匹配的构造函数

时间:2013-12-05 04:54:17

标签: lucene sitecore sitecore7.1

我们正在将项目从sitecore 6.2迁移到sitecore 7.1。

我尝试在升级Lucene Search后安装Active Directory软件包“Sitecore Active Directory 1.1 rev.130705”。 我收到了错误

"Sitecore.Exceptions.ConfigurationException: Could not create instance of type: Sitecore.ContentSearch.LuceneProvider.Analyzers.DefaultPerFieldAnalyzer. No matching constructor was found.".

这是我尝试使用sitecore 7.1中的安装向导安装软件包时

4 个答案:

答案 0 :(得分:2)

正如Exception Message所述,Sitecore' ContentSearch存在问题。它与Lucene版本或升级问题无关。问题的根源是不正确的Lucene或Solr(取决于您使用的是哪个)IndexConfiguration.config文件。

先检查

在继续之前,请确保它不是人为错误。如果App_Config/Includes/中的索引文件不止一次,则会显示此错误。或者,如果两个或多个索引配置文件具有相同的xml元素名称。

选项1 - 删除文件

您可以从/App_Config/Includes/文件夹中删除有问题的IndexConfiguration.config,并更新相关的Index配置文件以使用DefaultIndexConfiguration XML节点中的configuration; < / p>

<configuration ref="contentSearch/indexConfigurations/defaultLuceneIndexConfiguration" />

选项2 - 修复文件

另一个选项是修改自定义IndexConfiguration。大多数开发人员都熟悉通过复制配置文件的整个内容来创建自定义Index,因此将复制整个DefaultIndexconfiguration配置以创建导致异常的自定义IndexConfiguration。这不是必需的。

您只需要DefaultIndexconfiguration配置中的少量设置,如本博客中所示,如何create a custom IndexConfiguration

答案 1 :(得分:0)

我没有查看任何代码,但听起来像调用者(“Sitecore Active Directory 1.1 rev.130705”)是使用较旧版本的Lucene.Net编译的。检查AD包的参考资料,确保您使用的是相同版本的Lucene.Net,或升级您的AD包以使用更新的版本。

我不能说在升级Lucene.Net相关代码时会涉及多少编码(如果您有权访问它),但过去一两年的更新主要是大小写更改或get方法转换为真实属性

答案 2 :(得分:0)

我遇到了类似的问题,它与开发人员在app_config \ include目录中创建备份文件有关。

他们正在更新其中一个配置文件,为了创建备份,他们只是复制了该文件,创建了另一个.config文件(SameName-copy.config)

要解决此问题,我们只需将其重命名为SameName-copy.config.bak-ccyymmdd

希望这可以帮助未来有类似问题的人。

答案 3 :(得分:-2)

请注意,您无法直接从6.2升级到7.1。你将不得不分步进入6.5,7,然后是7.1