London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

SearchManager.Update problem

Vote:
 

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?

#132842
Aug 19, 2015 11:54
Vote:
 

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

Regards
/K

#132968
Aug 21, 2015 15:34
Vote:
 

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;
#132998
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.