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...

The strange behavior of Sitecore Search with cloned items

Today I would like to share some strange behavior noticed when using Sitecore search with cloned items. Sitecore support was also able to reproduce this. I tested it using Lucene and Azure searches, and both of them displayed the same behavior. I will update this post when I get an update from Sitecore Support. Context We have a multi-site solution where some types of items can be shared with other sites using item cloning features. eg The editor creates a news item on the first site, they can then clone this news item to any other site. If the editor wants to edit the news item, they need only edit the original item and any changes will be reflected the clones immediately.  Let's assume, we have the following structure within Sitecore: We have the following index configuration for the "Global Site", called global_site_master_index After an index rebuild, global_site_master_index  contains items from the  Global Site . Let's clone FirstSite_Ne...