0

刚刚完成将 Sitecore 8.2 (w/CommerceServer) 实例转换为使用 Solr 而不是 Lucene。我一直在这里关注这篇文章:

http://blog.alpha-solutions.us/2016/10/how-to-use-solr-with-sitecore-8-2-with-solr-6-the-easy-way/

在设置结束时,我的站点/CMS 给了我这个错误:

“/”应用程序中的服务器错误。

字典中不存在给定的键。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Collections.Generic.KeyNotFoundException:字典中不存在给定的键。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[KeyNotFoundException:给定的键不在字典中。] System.Collections.Generic.Dictionary`2.get_Item(TKey key) +14331515 Sitecore.ContentSearch.SolrProvider.SolrFieldMap.AddFieldByFieldName(XmlNode configNode) +647

知道这可能是什么吗?我想也许我在某处缺少配置。

先感谢您。

4

2 回答 2

1

检查您的 Sitecore.ContentSearch.Solr.DefaultIndexConfiguration.config 文件或自定义索引配置(如果有)。会有一个像这样的字段映射部分:

      <fieldMap type="Sitecore.ContentSearch.SolrProvider.SolrFieldMap, Sitecore.ContentSearch.SolrProvider">
        <fieldNames hint="raw:AddFieldByFieldName">
          <field fieldName="Yourfield" returnType="string" />
        </fieldNames/>
      </fieldMap>

字段的配置在某处会出错。

如果您有自定义索引配置,请确保使用 ref 而不是类型来设置 fieldMap 元素:

 <fieldMap ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration/fieldMap">
于 2017-07-24T21:21:32.603 回答
0

确保在 <fieldNames> 之前包含 <typeMatches>。

<fieldMap ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration/fieldMap">
  <typeMatches hint="raw:AddTypeMatch"></typeMatches>
  <fieldNames hint="raw:AddFieldByFieldName">
        ....
  </fieldNames>
</fieldMap>
于 2017-10-23T07:07:11.747 回答