SearchManager.Update problem


When using the 'SearchManager.Update' function to update our Lucene search index, I noticed that the '_outline' field for the updated entries was empty.

After some research I have noticed that the CatalogEntryRow.GetNodeEntryRelationRows() function always returns 0 records. Internally this causes the CatalogIndexBuilder.BuildPath() never to be called.

Also when using the ICatalogSystem to retrieve a CatalogEntryDto, I am unable to get records using the function. When performing a complete rebuild in the commerce manager, the function does return the appropriate records.

Is this by design, bug, ideas anybody?

Aug 19, 2015 11:54

What is your default search provider (you can check in Mediachase.Search.config), Is it properly configured. and Indexed has also been rebuilt.


Aug 21, 2015 15:34

We are using the default Lucene Search Provider, but we do have a custom 'CatalogIndexBuilder' where we do some extra stuff.

There I noticed the problem, when doing an Index Rebuild  (both in commerce manager or as a scheduled tasks) the 'BuildPath' function is called for every catalog entry, but when using the SearchManager.Update(...) function it was not being called, resulting in an empty '_outline' field in the lucene index. Using a decompiler on the Searchmanager class I found that the 'BuildIndex' is called after a call to 'CatalogEntryRow.GetNodeEntryRelationRows()'. Only if this returns a result the BuildPath function is called.

Now when manually loading a CatalogEntryRow object I am also not able to get any result using the GetNodeEntryRelationRows.

For testing this I used the code below. For me this always results in 0 entry relation rows.

   var dto = CatalogContext.Current.GetCatalogEntryDto(91176, new CatalogEntryResponseGroup(CatalogEntryResponseGroup.ResponseGroup.CatalogEntryFull));
            var relations = dto.CatalogEntry[0].GetNodeEntryRelationRows();
            var l = relations.Length;
Aug 24, 2015 9:58
* 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.