【问题标题】:Could not create instance of type: Sitecore.ContentSearch.LuceneProvider.Analyzers.DefaultPerFieldAnalyzer. No matching constructor was found无法创建以下类型的实例:Sitecore.ContentSearch.LuceneProvider.Analyzers.DefaultPerFieldAnalyzer。没有找到匹配的构造函数
【发布时间】:2013-12-05 04:54:16
【问题描述】:

我们正在将项目从 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 中的安装向导安装软件包时

【问题讨论】:

  • 你解决了这个问题吗?

标签: lucene sitecore sitecore7.1


【解决方案1】:

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

先检查一下

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

选项 1 - 删除文件

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

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

选项 2 - 修复文件

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

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

【讨论】:

    【解决方案2】:

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

    我不能说在升级 Lucene.Net 相关代码时涉及到多少编码(如果您可以访问它),但过去一两年的更新主要是外壳更改或转换为真实属性的 get-method .

    【讨论】:

      【解决方案3】:

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

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

      为了解决这个问题,我们只是将其重命名为 SameName-copy.config.bak-ccyymmdd

      希望这对以后遇到类似问题的人有所帮助。

      【讨论】:

        【解决方案4】:

        请注意,您不能直接从 6.2 升级到 7.1。你必须分步进行,进入 6.5、7 和 7.1

        【讨论】:

        • 这并不试图回答这个问题。这是作为答案发布的,但它并不试图回答这个问题。它可能应该是编辑、评论、另一个问题或完全删除。
        猜你喜欢
        • 2020-09-05
        • 2017-02-27
        • 1970-01-01
        • 1970-01-01
        • 2019-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-04
        相关资源
        最近更新 更多