Skip to main content

Create custom Sitecore Search Crawler

Hello,

I would like to show an implementation of a custom crawler which prevents indexing items under specific paths. This is useful when you want to exclude a whole subtree from your index configurations. e.g: You have a multi-site structure which contains 3 sites. You want to implement search funcationlity on one of the sites (call site A) and visitors should be able to search in site B content, but content from site C should not be visible, and you dont want to break relevancy of the search result.

The first step is create a class, call CustomCrawler.cs. This class should be derived from SitecoreItemCrawler class. Now, you can overwrite IsExcludedFromIndex method.

If you are ready, you should change crawler in the search config. Add paths to ExcludeRoot node and seperate them by pipes.

That's all. Now items are not indexed from the excluded paths, and you don't break the relevancy.

Comments

  1. Hello I am trying to run this with the Publishing Module to exclude items from the index. When it runs the item is named Messages and shows Core database not the expected item I was publishing in Master. Do you know if it is because how Publishing Module is run and if there is a workaround? Thanks.

    ReplyDelete
  2. Hello,
    Your blog has a lot of valuable information . Thanks for your time on putting these all together.. Really helpful blog..I just wanted to share information about
    devops online training

    ReplyDelete

Post a Comment

Popular posts from this blog

Sitecore 8.1 upgrade from 7.2

In the following post, I would like to share my experiences with regard to Sitecore upgrading and highlight some points. We have a project which is running on Sitecore 7.2 update 4. (This project was originally developed on Sitecore 6.5, but we upgraded it a few months ago) We have decided to upgrade that project to 8.1.  Probably you know there are more ways to move a project to Sitecore 8. e.g: You can create a new Sitecore 8 instance and transfer your content into the new instance. But we wanted to try the in-place upgrade process when the process modifies the existing instance. Moreover, we were curious how we can move old DMS data to xDB.  Step 1: Upgrade to 7.5 (Initial release) If you are already on Sitecore 7.2 you can move your solution to 7.5. Probably this is the hardest and slowest part of the path. Note: Always read and follow the upgrade notes from Sitecore before you start.  Before you start 7.5 upgrade, you will need: 7.5 update package (in...