2012-11-22 127 views
2

從Tridion 5.3 SP1升級到Tridion 2011 SP1期間,我們按照安裝手冊中的說明配置了搜索服務。Tridion搜索不起作用

當我們試圖尋找它是給錯誤的全部內容「的.aspx」字。

(80040356) The remote server returned an error: (404) Not Found.Unable to get the list of search results.Error occured while processing the request: Not Found. 
System.Net.HttpWebRequest.GetResponse() 
Tridion.ContentManager.Search.SolrClient.ProcessResponse(HttpWebRequest,Boolean,Boolean,String&) 
Tridion.ContentManager.Search.SolrClient.Post(String,String,String&) 
Tridion.ContentManager.Search.SolrClient.Query(String,Int32,Nullable`1,String&) 
Tridion.ContentManager.Search.SearchQueryEngine.GetSearchResultsFromSolr(SearchQueryData,Int32,Nullable`1) 
Tridion.ContentManager.Search.SearchQueryEngine.GetSearchResultsFromSolr(SearchQueryData,Int32,Nullable`1) 
Tridion.ContentManager.Search.SearchQueryEngine.GetSearchResults(SearchQueryData,Int32,Int32) 
Tridion.ContentManager.Search.ComWrapper.SearchQueryEngineFacade.GetSearchResults(Int32,Int32) 
SearchBLST.GetListData 
SearchBLST.GetSearchResults 
SearchBLST.GetSearchResultsEx 
Search.GetSearchResultsEx 

我們該如何解決問題?

<configuration> 
    <configSections> 
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=349a39f202fa9b53"/> 
    <section name="tridionConfigSections" type="Tridion.Configuration.ConfigurationSections, Tridion.Common, Version=6.1.0.25, Culture=neutral, PublicKeyToken=349a39f202fa9b53"/> 
    <section name="tridion.common" type="Tridion.Configuration.CommonSettings, Tridion.Common, Version=6.1.0.25, Culture=neutral, PublicKeyToken=349a39f202fa9b53"/> 
    <section name="solrHost" type="Tridion.ContentManager.Search.SearchHost.Configuration.SolrHostConfiguration, TcmSearchHost, Version=6.1.0.996, Culture=neutral, PublicKeyToken=ddfc895746e5ee6b"/> 
    </configSections> 
    <configProtectedData> 
    <providers> 
     <add name="TridionRsaProtectedConfigurationProvider" keyContainerName="TridionRsaKeyContainer" useMachineContainer="true" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" type="System.Configuration.RsaProtectedConfigurationProvider, 
      System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
    </providers> 
    </configProtectedData> 
    <tridionConfigSections> 
    <sections> 
     <clear/> 
     <add/> 
     <add name="loggingConfiguration"/> 
    </sections> 
    </tridionConfigSections> 
    <tridion.common> 
    <tracing enabled="false"> 
     <parameterValueTruncation default="50"> 
     <parameterTypes> 
      <clear/> 
      <!-- Do not remove or change the settings for type System.Data.IDataRecord --> 
      <add type="System.Data.IDataRecord" assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" maxLength="0"/> 
     </parameterTypes> 
     </parameterValueTruncation> 
    </tracing> 
    </tridion.common> 
    <loggingConfiguration name="Logging Application Block" tracingEnabled="false" defaultCategory="General" logWarningsWhenNoCategoriesMatch="false"> 
    <listeners> 
     <add name="Tridion Console Trace Listener" formatter="Trace Text Formatter" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.CustomTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=349a39f202fa9b53" traceOutputOptions="None" type="Tridion.Logging.TridionConsoleTraceListener, Tridion.Logging, Version=6.1.0.25, Culture=neutral, PublicKeyToken=ddfc895746e5ee6b" initializeData=""/> 
     <add name="Tridion Debug Trace Listener" formatter="Trace Text Formatter" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.CustomTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=349a39f202fa9b53" traceOutputOptions="None" type="Tridion.Logging.TridionDebugTraceListener, Tridion.Logging, Version=6.1.0.25, Culture=neutral, PublicKeyToken=ddfc895746e5ee6b" initializeData=""/> 
     <add name="Tridion Event Log" EventLog="Tridion" formatter="Event Text Formatter" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.CustomTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=349a39f202fa9b53" traceOutputOptions="None" type="Tridion.Logging.TridionEventLogTraceListener, Tridion.Logging, Version=6.1.0.25, Culture=neutral, PublicKeyToken=ddfc895746e5ee6b" initializeData=""/> 
     <add name="Log File" formatter="Trace Text Formatter" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=349a39f202fa9b53" traceOutputOptions="None" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=349a39f202fa9b53" fileName="D:\Tridion\log\TcmSearchHost.log"/> 
     <add name="Trace File" formatter="Trace Text Formatter" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=349a39f202fa9b53" traceOutputOptions="None" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=349a39f202fa9b53" fileName="D:\Tridion\log\TcmSearchHost.trace.log"/> 
    </listeners> 
    <formatters> 
     <add name="Log Text Formatter" template="{timestamp} &lt;{win32ThreadId}&gt; {message}" type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=349a39f202fa9b53"/> 
     <add name="Trace Text Formatter" template="{timestamp(HH:mm:ss.ffff)} &lt;{win32ThreadId}&gt; {message}" type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=349a39f202fa9b53"/> 
     <add name="Event Text Formatter" template="{message} 

Component: {keyvalue(component)} 
Errorcode: {keyvalue(errorcode)} 
User: {keyvalue(username)} 

{keyvalue(stacktrace)}" type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=349a39f202fa9b53"/> 
    </formatters> 
    <categorySources> 
     <add switchValue="All" name="Tridion.Logging.LoggingCategory.Tracing"> 
     <listeners> 
      <add name="Trace File"/> 
     </listeners> 
     </add> 
     <add switchValue="All" name="Tridion.ContentManager.Search.SearchHost.LogCategory"> 
     <listeners> 
      <!--add name="Tridion Console Trace Listener"/--> 
     </listeners> 
     </add> 
     <add switchValue="All" name="General"/> 
    </categorySources> 
    <specialSources> 
     <allEvents switchValue="Information" name="All Events"> 
     <listeners> 
      <add name="Tridion Event Log"/> 
     </listeners> 
     </allEvents> 
     <notProcessed switchValue="All" name="Unprocessed Category"/> 
     <errors switchValue="All" name="Logging Errors &amp; Warnings"/> 
    </specialSources> 
    </loggingConfiguration> 
    <!--To configure this Solr Instance as Master enable this solrHost xml node and disbale the other solrHost xml node--> 
    <!--<solrHost heartbeatTimeout="300" solrHome="%TRIDION_CM_HOME%\Libraries\solr-home" solrDataDir="%TRIDION_CM_HOME%\Search\solr-data" solrLogDir="%TRIDION_CM_HOME%\Log" jvmOptions="-Xmx768m -Xms768m -XX:MaxDirectMemorySize=1024m -Dfile.encoding=UTF-8 -Djava.security.auth.login.config=conf/jaaslogin.conf -Djava.security.auth.policy=conf/jaas.policy -Dlog4j.configuration=file:conf\log4j.properties -Djava.class.path=start.jar;lib\* -Duser.language=en -Duser.country=US -Denable.master=true" jvmFilePath="">--> 
    <!--To configure this Solr Instance as slave enable this solrHost xml node and disbale the other solrHost xml node. Set the -Dmaster.url, -Dmaster.authUser="MASTER_SOLR_INSTANCE_USER_NAME" and -Dmaster.authPassword--> 
    <!--<solrHost heartbeatTimeout="300" solrHome="%TRIDION_CM_HOME%\Libraries\solr-home" solrDataDir="%TRIDION_CM_HOME%\Search\solr-data" solrLogDir="%TRIDION_CM_HOME%\Log" jvmOptions="-Xmx768m -Xms768m -XX:MaxDirectMemorySize=1024m -Dfile.encoding=UTF-8 -Djava.security.auth.login.config=conf/jaaslogin.conf -Djava.security.auth.policy=conf/jaas.policy -Dlog4j.configuration=file:conf\log4j.properties -Djava.class.path=start.jar;lib\* -Duser.language=en -Duser.country=US -Denable.slave=true -Dmaster.url=MASTER_SOLR_INSTANCE_URL -Dmaster.authUser=MASTER_SOLR_INSTANCE_USER_NAME -Dmaster.authPassword=MASTER_SOLR_INSTANCE_PASSWORD" jvmFilePath="">--> 
    <solrHost heartbeatTimeout="300" jvmOptions="-Xmx768m -Xms768m -XX:MaxDirectMemorySize=1024m -Dfile.encoding=UTF-8 -Djava.security.auth.login.config=conf/jaaslogin.conf -Djava.security.auth.policy=conf/jaas.policy -Dlog4j.configuration=file:conf\log4j.properties -Djava.class.path=start.jar;lib\* -Duser.language=en -Duser.country=US" jvmFilePath="" solrHome="D:\Tridion\solr-home\" solrDataDir="D:\Tridion\solr-data\" solrLogDir="D:\Tridion\log\"> 
    <jetty port="8983" stopControlKey="#SdlTridionJettySolrKey#" stopControlPort="8079" mainClassName="org/mortbay/start/Main" jettyConfigurationArguments="conf\jetty-jmx.xml conf\jetty.xml conf\jetty-logging.xml" home="D:\Tridion\solr-jetty\" tempDir="C:\Windows\TEMP\" logDirectory="D:\Tridion\log\"/> 
    </solrHost> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
    <supportedRuntime version="v2.0.50727"/> 
    </startup> 
    <runtime> 
    <!--Enable Server GC mode for better performance in CLR 4.0. Note that this may lead to memory issues in CLR 2.0.--> 
    <gcServer enabled="true"/> 
    </runtime> 
</configuration> 
+0

如果搜索其它的文本會發生什麼情況的說明運行重新索引?像*文字*。此外,您是否運行TcmReIndex.exe文件來更新搜索集合? – robrtc

+0

這種類型的問題確實應該問ServerFault,而不是StackOverflow的:http://serverfault.com/questions/tagged/tridion –

回答

6

要解決搜索,第一件事我會嘗試與不同的搜索詞進行搜索,看看他們都返回相同的結果(在你的情況下,錯誤)。

接下來檢查Tridion Content Manager Search Host服務和Tridion Content Manager Search Indexer服務是否正在運行。如果是這樣,看看重新啓動它們是否會改變這種情況。

當我Tridion Content Manager Search Host服務被停止,我得到一個不同的錯誤,表示無法建立連接。所以我的想法會出現配置錯誤(在那裏提到的404使我懷疑SOLR是否正確安裝)。檢查你的MMC管理單元中的設置,並檢查(如@robrtc提到的),如果你能如upgrade manual

+0

後重建索引,重新啓動這兩個服務,並檢查設置MMC管理單元,我們沒有收到錯誤了。但我們也沒有獲得搜索結果。是的,我們用不同的搜索詞搜索。 – user1453602

+0

執行升級手冊中給出的升級步驟時,我們遇到了以下問題:在solrconfig.xml中將maxFieldLength設置爲10000,但在TcmSearchHost.exe.config中,我們沒有找到名爲jvmArguments的屬性,而是我們有屬性jvmOptions。在主要問題中附加TcmSearchHost.exe.config。 – user1453602

+0

我們做了ReIndexing,現在我們可以看到各種搜索條件的搜索結果。在這個週末我們還面臨着服務器上的內存問題。 TCMSearchHost.exe消耗大量內存。 solrconfig.xml中的maxFieldLength被設置爲10000 TcmSearchHost.exe.config被粘貼在主要問題中,任何想法爲什麼內存過度拍攝。 – user1453602