IndexingService configurations



Anyone that knows how to configure IndexingService? 

We are trying to make it work in a load balanced environment. It worked fine in the load balanced test environment but in production environment we got these errors in the log file.

EPiServer.Search.Internal.RequestQueueHandler: RequestQueue failed to retrieve unprocessed queue items. Message: Object reference not set to an instance of an object.
Stacktrace: at EPiServer.Search.Data.Internal.SearchFactory.ConstructSyndicationItem(IndexRequestQueueItem queueItem)
at EPiServer.Search.Data.Internal.SearchFactory.GetUnprocessedQueueItems(String namedIndexingService, Int32 pageSize, Collection`1& ids)
at EPiServer.Search.Internal.RequestQueueHandler.ProcessQueue()

There is a table called "tblIndexRequestLog" but is empty, perhaps thats how it should be?

When we clicked on the reindex button on this page /episerver/CMS/Admin/IndexContent.aspx we got these errors. 

EPiServer.Search.IndexingService.IndexingService: Reset of index: '' failed. Index not found!

EPiServer.Search.Internal.RequestHandler: Could not reset index '' for service uri 'http://[server]/IndexingService/IndexingService.svc/reset/?namedindex=&accesskey=local'. Message: The remote server returned an error: (500) Internal Server Error. at System.Net.HttpWebRequest.GetResponse()
at System.Net.HttpWebRequest.GetResponse()
at EPiServer.Search.Internal.RequestHandler.MakeHttpRequest(String url, IndexingServiceReference indexingServiceReference, String method, Stream postData, Action`1 responseHandler)
at EPiServer.Search.Internal.RequestHandler.ResetIndex(String namedIndexingService, String namedIndex)

Our configuration:








Lucene can create its index files, but when we search we only get hits when we search for the page ids.



Nov 08, 2017 7:31

Trying deleting the entire index folder, recycle the app pool and then try to reindex again.  also, when you navigate to "/IndexingService/IndexingService.svc", what do you see.  You should see something like "Endpoint not found".  This means you have it setup correctly.

Dec 17, 2017 17:39

"tblIndexRequestLog" is a rather confusing name.

The sequence of processing as I see it is:

  1. The job tries to reset the index
  2. The job iterates over all content
  3. For each content it constructs a search document
  4. The document is serialized into the queue("tblIndexRequestLog")
  5. Some to me unknown background service consumes the queue
  6. The serialized search document is deserialized with ConstructSyndicationItem
  7. The deserialized search documents are sent to the Indexingservice

If the table is empty it simply means that the indexing isn't in a running state.

Your RequestQueueHandler error suggests the deserialization fails because of -some- issue with -some- data, I wish you luck finding out what. cry

Dec 18, 2017 16:14
* 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.