【发布时间】: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, IFieldQueryTranslatorMap
1 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