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?
What is your default search provider (you can check in Mediachase.Search.config), Is it properly configured. and Indexed has also been rebuilt.
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.GetNodeEntryRelationRows();
var l = relations.Length;