- Understanding the Indexing and Search Pipelines
- Understanding the REST Endpoint Pipelines
- Understanding the Analytics Pipelines
- Understanding the Coveo UI Pipelines
- Understanding the Cloud Platform Client Pipelines
- Understanding the coveoItemProcessingPipeline Pipeline
- Understanding the coveoPostItemProcessingPipeline Pipeline
- Understanding the coveoBeforeUpdatingIndexFields Pipeline
- Understanding the coveoResolveItemSite Pipeline
Understanding the coveoResolveItemSite Pipeline
This pipeline uses the
Coveo.SearchProvider.Pipelines.CoveoResolveItemsSiteArgs class and is used to resolve an item’s site at indexing time. The pipeline is invoked when computing an item clickable URI value. At indexing time, the site in the Sitecore context can’t be used because Sitecore resolves the site based on the URL used by the web browser to access the website. Usually, it would target the
||The Sitecore item that’s being indexed.|
||The name of the Sitecore site that has been resolved. When the pipeline ends, the value of this property is used to compute the item clickable URI. When
Coveo.SearchProvider.config file, you can add your processor using the arguments under the
coveoResolveItemSite element in the
Coveo.SearchProvider.Custom.config file. To do so, copy the
coveoResolveItemSite node from the
Coveo.SearchProvider.config file, and paste it into your
Coveo.SearchProvider.Custom.config file, under pipelines.
You’re discouraged from modifying the
Coveo.SearchProvider.config file directly, as doing so may result in unforeseen upgrading issues.
By default, the
ResolveItemSiteProcessor is enabled and will resolve to the first site that contains the item being indexed.
Understanding the ResolveItemSiteProcessor Processor
This processor is responsible for resolving the site of a specific item. It’s particularly useful when dealing with many sites.
The work performed by this processor is straightforward:
- It scans the list of configured Sitecore sites.
- For each site, it checks whether the site name is excluded or not. In a clean install of Sitecore, all sites are excluded except the
- It then checks if the item being indexed is located under the site Home item. If the answer is
true, then the item site is resolved. Otherwise, it continues to the next site.
When you need to customize the behavior, you can safely remove or replace this processor. It’s also possible to inherit from the
Coveo.SearchProvider.Processors.ResolveItemSiteProcessor class to take advantage of its extension points. You can override these methods to tailor the processor to your needs.
It returns the list of sites that are excluded from the site resolution process.
bool IsItemInSite(ISiteInfo p_SiteInfo, IItem p_Item)
Using the site configuration and the item being indexed, it checks if the item resides in the site.
string ResolveItemSite(IItem p_Item)
This method wraps the whole site resolution process. It’s responsible for calling both the
IsItemInSite methods. You may want to override this method to implement a custom fallback strategy. However, you can also add your own custom processor to the pipeline to achieve the same result.