C# 内容搜索,重建索引错误

C# 内容搜索,重建索引错误,c#,solr,lucene,sitecore,sitecore7,C#,Solr,Lucene,Sitecore,Sitecore7,我是Sitecore的新手,有一项任务是使用Sitecore 7 API构建搜索。执行搜索结果查询时出现以下错误 System.ArgumentNullException: Value cannot be null. Parameter name: fieldNameTranslator 从以下行引发错误 IQueryable<SearchResultItem> results = context.GetQueryable<SearchResultItem>(); 我

我是Sitecore的新手,有一项任务是使用Sitecore 7 API构建搜索。执行搜索结果查询时出现以下错误

System.ArgumentNullException: Value cannot be null. Parameter name:
fieldNameTranslator
从以下行引发错误

IQueryable<SearchResultItem> results = context.GetQueryable<SearchResultItem>();
我已登录到内容管理系统,并在索引管理器中尝试重建sitecore\u web\u索引的索引,但我遇到以下错误

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,
  • 检查是否可以从承载Sitecore应用程序的计算机访问Solr
  • 确保
    ContentSearch.Solr.ServiceBaseAddress设置指向正确的Solr资源
  • 如果您的解决方案使用IoC,请确保仅为您的应用程序定义了一个IoC容器实例。如果需要,将容器初始化移动到
    应用程序启动
    方法

我也面临同样的问题,IOC也在应用程序启动时配置,但我进一步深入研究了这个问题,发现Sitecore.ContentSearch.ContentSearchManager类点击了Factory.CreateObject(“ContentSearch/configuration”,true)方法,返回Sitecore.ContentSearch.SolrProvider.SolrSearchConfiguration对象。但是预期的对象是ProviderIndexSearchConfiguration。我使用了Solr配置包中提供的相同的Sitecore.ContentSearch.Solr.Indexes.config

因此,Sitecore.ContentSearch.SolrProvider.SolrContentSearchManager的Initialize方法会引发操作异常

publicstaticvoidinitialize()
{
foreach(SolrContentSearchManager.index中的ISearchIndex searchIndex)
searchIndex.Initialize();//当我监视searchIndex.Operations时,它抛出了上述异常。
}

  • 请确保schema.xml包含,
    节点,该节点应将
    节点作为其子节点。以及
    节点,该节点应将
    节点作为其子节点
  • Solr示例文件夹中的schema.xml可能不包含上述节点。将上述节点添加到现有schema.xml后,从Sitecore(控制面板->索引)生成新的schema.xml
  • 重新启动Solr实例并尝试从Sitecore重建索引
  • 以上步骤为我解决了这个问题。希望它也能帮助你

查一下你的参考资料

通过在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" %>

现在,问题得到解决

抱歉,
Piushpendra

我可以使用“”访问solr,我可以在下拉列表中看到“Collection1”和“ItemBucket”,在配置文件中,servicebaseaddress已配置为使用正确和默认的solr url,global.asx文件具有以下条目“”,但当我运行数据库索引时,我启动了以下错误作业:。Index_Update_IndexName=Sitecore_core_Index|#异常:System.Reflection.TargetInvocationException:调用的目标已引发异常---->Sitecore.Exceptions.PiaruObjuiderConfiguration异常:Solr操作不可用。请检查您的global.asax、设置和include文件。我刚刚禁用了“Sitecore.ContentSearch.Solr.Indexes.config”,一切正常。当您将提到的Solr config放入/include文件夹时,是否禁用了所有以
Sitecore.ContentSearch.Lucene
开头的Lucene配置?还要仔细检查是否使用了正确版本的
Sitecore.ContentSearch.SolrProvider.dll
Sitecore.ContentSearch.SolrProvider.dll
。不知何故,Lucene和Solr都进行了配置,但当我标记为Solr config时,一切开始工作。
<%@Application Language='C#' Inherits="Sitecore.ContentSearch.SolrProvider.CastleWindsorIntegration.WindsorApplication" %>