2012-11-22 130 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