Episerver Search (CMS Internal Search) Only working for IDs

Vote:
 

Hello,

I've researched this a lot and have not found a difinitive answer on how to fix this.  All of my configurations are correct and match proved working solutions from others, however, on any environment we try, local or server - we cannot seem to get the internal search feature to work by typing in the name of content, it only works when we type in the ID of content/media exactly as it appears (i.e. 16202) 

Here are our configurations for the search:


        
            
                
            
        
    
    
        
            
        
        
            
                
            
        
    

and some additional configurations:

 
    
      
    
    
      
        
          
        
      
    
  

 
        
          
        
      
    
    
#121245
May 05, 2015 16:11
Vote:
 

Hi, Mike,

The fact that it doesn't search by text means that the Index is not created properly. Most of the issues that could happen are described here:

http://world.episerver.com/Modules/Forum/Pages/Thread.aspx?id=70703

Check if you have any errors in the log file, try to stop the site, reindex (wait some)... It is a bit difficult to set this up and most probably you'll have to do the same on staging/production.

Hope this helps,

Marija

#121248
May 05, 2015 16:38
Vote:
 

Hey Marija,

Thanks for the response.  However i've read through that thread almost a dozen times and no matter what I do, I am unable to get the CMS Search to search by text.  Only by ID.  I'm not sure why the indexing process is messed up or why it isn't working correctly.  I'm completely stumped.

#121308
May 06, 2015 15:10
Vote:
 

Here is one of the latest errors i'm seeing:

015-05-06 09:10:56,232 [62] ERROR SearchSettings: RequestQueue failed to retrieve unprocessed queue items. Message: A transport-level error has occurred when receiving results from the server. (provider: Session Provider, error: 19 - Physical connection is not usable)
Stacktrace:    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
   at System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()
   at System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()
   at System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer()
   at System.Data.SqlClient.TdsParserStateObject.TryReadUInt32(UInt32& value)
   at System.Data.SqlClient.TdsParserStateObject.TryReadPlpLength(Boolean returnPlpNullIfNull, UInt64& lengthLeft)
   at System.Data.SqlClient.TdsParser.TryGetDataLength(SqlMetaDataPriv colmeta, TdsParserStateObject stateObj, UInt64& length)
   at System.Data.SqlClient.TdsParser.TryProcessColumnHeaderNoNBC(SqlMetaDataPriv col, TdsParserStateObject stateObj, Boolean& isNull, UInt64& length)
   at System.Data.SqlClient.SqlDataReader.TryReadColumnInternal(Int32 i, Boolean readHeaderOnly)
   at System.Data.SqlClient.SqlDataReader.TryReadColumn(Int32 i, Boolean setTimeout, Boolean allowPartiallyReadColumn)
   at System.Data.SqlClient.SqlDataReader.GetValueInternal(Int32 i)
   at System.Data.SqlClient.SqlDataReader.GetValue(Int32 i)
   at System.Data.SqlClient.SqlDataReader.get_Item(String name)
   at EPiServer.Data.Dynamic.Providers.DbDataStoreProvider.LoadInlineProperties(ProviderCallContext ctx)
   at EPiServer.Data.Dynamic.Providers.DbDataStoreProvider.<>c__DisplayClass1.<Load>b__0()
   at EPiServer.Data.Providers.SqlDatabaseHandler.<>c__DisplayClass1`1.<Execute>b__0()
   at EPiServer.Data.Providers.SqlTransientErrorsRetryPolicy.Execute[TResult](Func`1 method)
   at EPiServer.Data.Providers.SqlDatabaseHandler.Execute[TResult](Func`1 action)
   at EPiServer.Data.Dynamic.Providers.DbDataStoreProvider.Load(ProviderCallContext context)
   at EPiServer.Data.Dynamic.DynamicDataStore.InternalLoad(Identity id, Type type, LoadAsObjectType loadAs, ProviderCallContext parentContext)
   at EPiServer.Data.Dynamic.EPiServerDynamicDataStore.Load[TResult](Identity id)
   at EPiServer.Data.Dynamic.DynamicDataCollection`1.DynamicDataCollectionEnumerator.get_Current()
   at EPiServer.Search.Data.SearchFactory.GetUnprocessedQueueItems(String namedIndexingService, Int32 pageSize, Collection`1& ids)
   at EPiServer.Search.RequestQueueHandler.ProcessQueue()
#121309
May 06, 2015 15:15
Vote:
 

Are you Index files placed on the test server, while you are working on localhost? That looks like a VPN issue, at least I get it when VPN breaks. Can you try with local index folder? // It happened to us that the two environment lock down some of the files, that's why we set up the local index as well.

One of the issues my co-worker once had is that the indexing didn't work for him on IIS Express (he always got an error when accessing the IndexingService/IndexingService.svc), but it did work on IIS. That wouldn't explain why it doesn't work for you on test either :/

#121310
May 06, 2015 15:18
Vote:
 

No all the index files are relative to whatever environment they are on, meaning they exist on each environment respectively (local, test, staging, etc).  Each environment has the same issue, the search is only working by ID and not by text.

I am not receiving any errors when accessing the SVC or the update method, both urls return the appropriate messages we should be seeing.  I'm not sure whats causing this to not index properly, but it just feels overall broken, i'm not sure what I need to do, any thoughts?

#121336
May 06, 2015 20:38
Vote:
 

Hi, Mike,

Have you come to a resolution?

If not, I would suggest you contact EPiServer support, it looks like we are out of ideas. 

It would be great that you update this issue once they help you fix it, for the future use :)

#121436
May 11, 2015 10:09
Vote:
 

Hey Marija,

Sorry for the long delay,  we were and still are unable to get the Episerver CMS Search to work for anything but entering in Page/Block/Media IDs.  Nothing comes up in search results by name, index files are being created but the whole process does not seem to work correctly :(

If anyone has any more help or guidance it would be appreciated as our users would love to use this feature but are unable to.

#122712
Jun 10, 2015 19:55
Vote:
 

Hey, Mike,

Have you opted for contacting EPiServer support?

#122933
Jun 18, 2015 11:18
Vote:
 

Hi Mike,

I also faced this problem, it all requires few changes in the config file. The appDataPath should be "index" and add new tag under the "namedIndexingServices".

So the web.config search like below:

<episerver.search active="true">
        <namedIndexingServices defaultService="phoenixInternalSearch">
            <services>
                <add name="phoenixInternalSearch" baseUri="http://cbbbtest.com/IndexingService/IndexingService.svc" accessKey="C7184E3ED7134895B3E95AB3AB4F4AE5" />
            </services>
        </namedIndexingServices>
        <searchResultFilter defaultInclude="true">
           <providers />
        </searchResultFilter>
    </episerver.search>
    <episerver.search.indexingservice>
        <clients>
            <add name="C7184E3ED7134895B3E95AB3AB4F4AE5" description="local" allowLocal="true" readonly="false" />
        </clients>
        <namedIndexes defaultIndex="default">
            <indexes>
                <add name="default" directoryPath="[appDataPath]\Index" readonly="false" />
            </indexes>
        </namedIndexes>
    </episerver.search.indexingservice>

Note:

Start the search index using the URL http://cbbbtest.com/EPiServer/CMS/Admin/IndexContent.aspx


After restarting the index, kindly wait for few minutes to get the Admin interface search result.

#123305
Edited, Jul 01, 2015 10:51
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.