Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more

How to disable Find indexing on specific products

Vote:
 

Hi guys, 

I would like to find a way to exclude some products(VariationContent) in the Find search result, the products which are located in a not active category (set as NOT available in commerce)

In CMS I can add a bool DisableIndexing in a page type, do I need to do silmiar thing and build a job to set disableIndexing = true to the products?

Please provide me some suggestions.

Thanks 

#197092
Sep 21, 2018 10:15
Vote:
 

You can do like this - just change the code inside ShouldIndex to what you would like 

ContentIndexer.Instance.Conventions
     .ForInstancesOf<VariationContent>()
     .ShouldIndex(x => ShouldIndex(x));
bool ShouldIndex(IContent content)
 {
     var ancestors = _contentLoader.GetAncestors(contentLink).OfType<FashionNode>();
     if (ancestors.Any(c => c.Name == "Mens"))
     {
         return false;
     }
     return true;
 }
#197094
Sep 21, 2018 11:28
Vote:
 

Thank you Quan! 

I will try this solution. :) 

I have other scenario, how shall I do to hide the customer specificed products in search result?

When a customer login, he has customer specified products and he should be able to search it but not anonymous user.

#197095
Sep 21, 2018 11:47
Vote:
 

The new question should be in a separate thread. To you can always filter the search result by adding a property - for example ForRegisteredUserOnly, and use that to filter with Find 

#197096
Sep 21, 2018 11:48
Vote:
 

Sorry, I will open a new thread next time. 

Thanks for the tips!  

#197097
Sep 21, 2018 12:07
This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* 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.