2016-01-25 11 views
1

我已經將我的Sitecore 8.1站點從Lucene切換到SOLR,如link所示。SolrNet.Exceptions.SolrConnectionException在Sitecore 8.1 Upd1切換到SOLR之後

一切都很好,直到我重建我的索引。除了sitecore_master_index和sitecore_core_index之外,它們都成功重建。他們都給出了類似的錯誤,我需要做些什麼來解決它?

Job started: Index_Update_IndexName=sitecore_master_index|#Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> SolrNet.Exceptions.SolrConnectionException: <?xml version="1.0" encoding="UTF-8"?> 
<response> 
<lst name="responseHeader"><int name="status">400</int><int name="QTime">0</int></lst><lst name="error"><str name="msg">ERROR: [doc=sitecore://master/{8972abaa-542b-464e-963b-38d36ab550b8}?lang=da&amp;ver=1&amp;ndx=sitecore_master_index] unknown field '__display_name_t_da'</str><int name="code">400</int></lst> 
</response> 
---> System.Net.WebException: The remote server returned an error: (400) Bad Request. 
    at System.Net.HttpWebRequest.GetResponse() 
    at HttpWebAdapters.Adapters.HttpWebRequestAdapter.GetResponse() 
    at SolrNet.Impl.SolrConnection.GetResponse(IHttpWebRequest request) 
    at SolrNet.Impl.SolrConnection.PostStream(String relativeUrl, String contentType, Stream content, IEnumerable`1 parameters) 
    --- End of inner exception stack trace --- 
    at SolrNet.Impl.SolrConnection.PostStream(String relativeUrl, String contentType, Stream content, IEnumerable`1 parameters) 
    at SolrNet.Impl.SolrConnection.Post(String relativeUrl, String s) 
    at SolrNet.Impl.SolrBasicServer`1.SendAndParseHeader(ISolrCommand cmd) 
    at Sitecore.ContentSearch.SolrProvider.SolrBatchUpdateContext.AddRange(IEnumerable`1 group, Int32 groupSize) 
    at Sitecore.ContentSearch.SolrProvider.SolrBatchUpdateContext.Commit() 
    at Sitecore.ContentSearch.SolrProvider.SolrSearchIndex.PerformRebuild(Boolean resetIndex, Boolean optimizeOnComplete, IndexingOptions indexingOptions, CancellationToken cancellationToken) 
    at Sitecore.ContentSearch.SolrProvider.SolrSearchIndex.Rebuild(Boolean resetIndex, Boolean optimizeOnComplete) 
    --- End of inner exception stack trace --- 
    at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 
    at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at Sitecore.Reflection.ReflectionUtil.InvokeMethod(MethodInfo method, Object[] parameters, Object obj) 
    at Sitecore.Jobs.JobRunner.RunMethod(JobArgs args) 
    at (Object , Object[]) 
    at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) 
    at Sitecore.Jobs.Job.ThreadEntry(Object state) 
+0

使用'Fiddler'應用程序來檢查返回'400'錯誤的請求是什麼。 –

+0

請求似乎是一個的checkStatus請求只:__ PARAMETERS =的checkStatus&__ EVENTTARGET =&__ EVENTARGUMENT =&__ SOURCE =&__ EVENTTYPE =&__文本菜單=&__ MODIFIED =&__ ISEVENT = 1&__ CSRFTOKEN =%2FwEFJGYyZDA4NzViLThkNmItNDdlMi1iZDViLTAxNDlkYzhjZDRiZg%3D%3D&__ VIEWSTATE = 93A1B03F9E584747B9ACAEB1FD082682&__ VIEWSTATE =&dk_102781865 = 1&ERRORTEXT =&ResultText = – TamerM

+0

我只注意到在迴應以下內容:錯誤:[doc = sitecore:// master/{4ca2f825-0cf6-4a25-98ea-f16fd1ce469a}?lang = ja-jp&am ..............所以它試圖找到不同語言的項目(ja,de,da ...)。我不應該使用除英語以外的任何其他語言 – TamerM

回答

1

看起來像問題是與_da後綴這是後綴爲索爾的丹麥文本字段。

先嚐試添加,然後從控制面板中刪除丹麥語「da」語言到Sitecore並重新索引。

對於core數據庫,從/sitecore/system/languages/節點刪除不必要的語言core db。

1

似乎在Sitecore 8.0中,它生成的Solr Schema在schema.xml輸出(在您引用的博客鏈接中提到)中添加了各種語言特定的字段映射(在<fields>下)。

在8.1更新1中,這些字段映射由於某種原因而消失,您將留下Solr錯誤。我注意到這個問題審查的報告指出,SOLR日誌後:

.SolrException: ERROR: [doc=sitecore://core/{0b511b3d-c6eb-4284-aa75-c80fdca93db2}?lang=ja-jp&ver=1&ndx=**sitecore_core_index**] unknown field 'click**_t_ja**' 

添加以下字段映射(再次提及你的blog link)回Solr的Schema.xml文件和Solr曾在這一點上。

<!-- added back in after 8.1 update 1 didn't generate them in schema --> 
<dynamicField name="*_t_ar" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_bg" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_ca" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_cz" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_da" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_de" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_el" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_es" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_eu" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_fa" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_fi" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_fr" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_ga" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_gl" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_hi" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_hu" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_hy" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_id" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_it" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_ja" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_lv" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_nl" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_no" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_pt" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_ro" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_ru" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_sv" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_th" type="text_general" indexed="true" stored="true" /> 
<dynamicField name="*_t_tr" type="text_general" indexed="true" stored="true" />