Gravatar for dipsindol@gmail.com

Question by DEEPTHI KATTA, Feb 27, 2018 11:31 PM

Sitecore WildCard Multi Site Architecture for Coveo

Hi There!

There is a very mature Sitecore Instance with Multi Site(Multi Sites per Language) and Content is outside of the Site content tree and is at a Global space where all Language related versions and content is maintained.

How can we configure Coveo to support this structure to ensure -

1. When we have a search page on a specific site, it will only return results related to that site and nothing more.

2. We do have a specific field on the item that determines whether an item is valid for a language/culture or not and we would like to consider this as well to ensure we never show an item on results that is not relevant.

3. How about the URL generation? Currently, for an Item LinkManager is modified, so, we do get back correct URL based on what item is requested. Would it work seamlessly when Coveo starts crawling this content or do we need to be cautious around this?

Any thoughts on these in general, I do see some blogs and vague Q&A, but, would love to know a deeper example of actual implementation.

1 Reply
Gravatar for akumar346@sapient.com

Answer by AKumar346, Feb 28, 2018 7:57 AM

Hi Deepthi,

I have developed the same requirement, please find my response on your points:

1) It will help to suggest better way, if you can share Sitecore structure to understand well and also what information you are displaying on your search page.

2) Yes correct, like "Include In Search" checkbox field used sync to Coveo

3) I have also created a computed field to generate itemurl for each item. And for Coveo crawling you have to update ClickableUri field. by adding coveoPostItemProcessingPipeline processor.

Gravatar for dipsindol@gmail.com

Comment by DEEPTHI KATTA, Feb 28, 2018 7:53 PM

@AKumar346 That is awesome to hear you guys pulled off Sitecore Wildcard with Coveo Framework to work for your structure seamlessly.

Below is an example of how the sitecore tree is structured to give you an idea

Sitecore

--- Content

--------WebSiteContent (This is where all the content across all sites is maintained including all languages and cultures)

-------------- Home

-------------- Insights

-------------------- Insight 1

--- Sites

-------Site 1

-----------Home(WildCard that points to Home node listed above under website content)

---------------Insights(wildcard link that points to Insights node listed above under website content)

------------------ * (looks for any pages within Insights on the website content)

These are the things running in my head in terms of how I can achieve this with Coveo to ensure of the concerns I mentioned on my initial question.

Steps:

1. tap on to CoveoItemProcessing pipeline to check if the current item is of type wildcard, then, grab all the children/descendants if any and add them appropriately based on a special field we have to see if a specific version(language/culture) is supported for a site or not.

2. I am guessing if we just point to Coveo where to look for to add these items, it should be smart enough to load up Click URI etc., because behind the scenes it does use Link Manager to get a URL for an item

3. Coveo by default does fire off language filter based on context site, I am guessing we should be fine here to ensure Coveo only shows results based on the site specific language/culture. Or do we need to do anything in addition.

4. Since obviously, Coveo generates two indexes by default regardless of which site, it does have a param that is called site and compare it with context site to ensure we are only pulling items that belong to a specific site and nothing more.

Do you think this is comprehensive based on structure I listed or do we need to do more.

Ask a question