【问题标题】:Sitecore Solr index FieldNameTranslator is nullSitecore Solr 索引 FieldNameTranslator 为空
【发布时间】:2017-10-04 07:29:51
【问题描述】:

我目前正在使用 Sitecore 索引 - solr 和 lucene。

我已经制作了自己的自定义索引,它适用于 lucene,但我无法让它与 Solr 一起使用。

我的问题是每当我使用 Solr 配置时,我的索引的 FieldNameTranslator 都是空的。

我正在使用 Sitecore ContentSearch dll 通过以下方式获取索引:

 this.IndexName = indexName;
 this.index = ContentSearchManager.GetIndex(indexName);           
 var i = ContentSearchManager.GetIndex("sitecore_master_index");

作为测试,我还尝试获取 sitecore_master_index 并且这似乎有效。我得到以下信息:

我得到一个索引,但每当我通过调用 GetQueryable 查询它时,它就会失败并出现以下错误:

异常:System.ArgumentNullException 消息:值不能为空。 参数名称:fieldNameTranslator 来源: Sitecore.ContentSearch.Linq.Solr 在 Sitecore.ContentSearch.Linq.Solr.SolrIndexParameters..ctor(IIndexValueFormatter valueFormatter, IFieldQueryTranslatorMap1 fieldQueryTranslators, FieldNameTranslator fieldNameTranslator, IExecutionContext[] executionContexts, IFieldMapReaders fieldMap, Boolean convertQueryDatesToUtc) at Sitecore.ContentSearch.SolrProvider.LinqToSolrIndex1..ctor(SolrSearchContext 上下文,IExecutionContext[] executionContexts) 在 Sitecore.ContentSearch.SolrProvider.SolrSearchContext.GetQueryable[TItem](IExecutionContext[] 执行上下文)

我使用 SolrNet 作为 IOC,从我在文档中可以阅读的内容来看,它应该从 8.2 及更高版本开始工作。如果我使用其他 IOC 之一,那么它工作得很好。

所以我的问题是这里真的会出什么问题吗?有人可以向我解释一下 FieldNameTranslator 是什么以及它是如何在配置中启动的吗? (我想它是在哪里设置的)

【问题讨论】:

    标签: solr sitecore sitecore8 solrnet


    【解决方案1】:

    我也遇到过同样的问题。确保您的 Solr 已启动,然后您的 sitecore 才能访问 Solr。我刚刚得到了完全相同的错误,切换到 CasteWindsor 对您没有帮助。杀死 Sitecore WP 或执行 IISRESET - 然后它就可以工作了。

    【讨论】:

      【解决方案2】:

      我之前也遇到过同样的问题,只需将 Castle Windsor 用于 IoC,然后将您的 global.asax 更改为如下所示:

      <%@Application Language='C#' Inherits="Sitecore.ContentSearch.SolrProvider.CastleWindsorIntegration.WindsorApplication" %> 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多