我是Sitecore的新手,并且有一项任务是使用SiteCore 7 API构建搜索。在搜索结果查询执行时收到以下错误。
System.ArgumentNullException: Value cannot be null. Parameter name:
fieldNameTranslator
错误来自以下行
IQueryable<SearchResultItem> results = context.GetQueryable<SearchResultItem>();
堆栈说
Sitecore.ContentSearch.Linq.Solr.SolrIndexParameters..ctor(IIndexValueFormatter valueFormatter, IFieldQueryTranslatorMap`1 fieldQueryTranslators, FieldNameTranslator fieldNameTranslator, IExecutionContext[] executionContexts) +284
我已登录到内容管理系统,在索引管理器中我正在尝试重建sitecore_web_index的索引,但我收到以下错误
Job started: Index_Update_IndexName=sitecore_web_index|#Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Sitecore.Exceptions.ProviderConfigurationException: Solr operations unavailable. Please check your global.asax,
答案 0 :(得分:5)
ContentSearch.Solr.ServiceBaseAddress
设置指向正确的Solr资源Application_Start
方法。答案 1 :(得分:0)
我也面临同样的问题,IOC也在application_start上配置,但我进一步深入研究了这个问题,发现 Sitecore.ContentSearch.ContentSearchManager 类击中了 Factory.CreateObject( &#34; contentSearch / configuration&#34;,true); 返回 Sitecore.ContentSearch.SolrProvider.SolrSearchConfiguration 对象的方法。但预期的对象是 ProviderIndexSearchConfiguration 。我使用了solr配置包中提供的相同的 Sitecore.ContentSearch.Solr.Indexes.config 。
因为Sitecore.ContentSearch.SolrProvider.SolrContentSearchManager的Initialize方法为操作抛出异常。
public static void Initialize()
{
foreach (ISearchIndex searchIndex in SolrContentSearchManager.Indexes)
searchIndex.Initialize(); //The searchIndex.Operations is throwing above exception when I put watch on that.
}
答案 2 :(得分:0)
<types></types>
节点,该节点应将<filedtype>
节点作为其子节点。以及<fields></fields>
节点应该将<field>
节点作为其子节点。检查this以供参考。
答案 3 :(得分:0)
您可以通过在Visual Studio中运行此命令从NuGet获取Castle Windsor:
Install-Package Castle.Windsor -version 3.1.0
您需要在global.asax中设置IOC容器。编辑应用程序的global.asax,如下所示,
<%@Application Language='C#' Inherits="Sitecore.ContentSearch.SolrProvider.CastleWindsorIntegration.WindsorApplication" %>
现在,问题得到解决。
Regrads, Piushpendra