Best Practice : Sitecore MultiSite soultion for coveo search
I am using Coveo Cloud pro edition with sitecore, planning to use a multisite approach.
The recommended way I see here is to use advanced query expression to filter the results to only the ones under your home item id by using the Sitecore "_path" field, the == field query operator.
What if I use query pipeline for each site instead of query expression in the code behind for the search page.?
What is the best way to use multisite approach if we need to filter the based on the site also the Machine Learning Model should capture different result for different site.?
All analytics for the different site should be filtered easily.
I'm sorry, but I have to answer: It depends.
Query Pipelines are very good if you plan on segmenting the Machine Learning model. You must be aware that stop words, thesaurus, and other pipeline features would have to be duplicated.
Yes, you could put the path, but you must be aware that it is in no way a good filter to *secure content*. Any clever user could just query your index with an anonymous user, figure out your pipeline names, and change the `pipeline` attribute to your second one.
Going this path, you must assume that all the content from your index can be retrieved for any site (considering Sitecore's security model).
Coveo for Sitecore also provides the `searchHub` attribute which can be used in a single pipeline to segment your Machine Learning models, which might be a better fit for your use case.
This would allow having different query suggestions per types of pages. For instance, your "product" Search Interface could have the "product" `searchHub`, which would give you suggestions skewing towards products.
The `Search Hub` is configurable on the "Coveo Analytics" component in the Coveo for Sitecore Hive framework.