Update 1 Explained

Sitecore 7 Update 1 has been released and we thought we would take some time to take the release notes and explain the changes and new features so that you can start using them in your solution. Of all the changes/additions we will highlight the following because they are the changes that most likely will impact your decisions when building on Sitecore 7:

  • SitecoreItemCrawler is the default crawler implementation for SOLR and Lucene.
  • InMemoryIndexes allowed in configuration
  • IgnoreIndexField
  • PredefinedQuery
  • LinqScratchPad additions
  • Crawler Method Additions
  • Oracle Support


This crawler is fast, hungry and dead simple to implement. In its easiest form, you really only need to implement one method on this interface i.e. GetIndexables(). This rounds up IIndexables and then passes it to the abstract Crawler and lets it do all the work. This is now the default crawler that is set for both Lucene and SOLR and of course can be used for any other provider that comes out. Coming with the performance of this crawler comes a system that uses more CPU. Just be aware that when rebuilding an index in an authoring or production environment (probably not the best idea anyway) that the process will be hungry on the CPU.


In the first release of Sitecore 7 we allowed you to construct InMemoryIndexes in code for use in starting up in a pipeline, event or as part of your Unit Tests. There was also many strong use cases for us to provide the ability to tell Sitecore using configuration to create these InMemoryIndexes. You can now do this and there are so many reasons you should use this feature. If you have parts of content tree that are heavily searched or if you have data that you want to store but not persist after an application pool reset then this is the feature for you.

IgnoredIndexField and PredefinedQuery

These features are fantastic! Firstly the IgnoredIndexField allows you to tell the system to not map the value in the index to the property even if it found a match. Secondly the PredefinedQuery allows you to place filters on your POCO so that in addition to your LINQ query, it will make sure it adds this filter as well. The obvious use case is to make sure that all LINQ queries default to only ever bring back the right template and the latest version of a result.

Here is an example of its use:

[PredefinedQuery("template", ComparisonType.Equal, "{3B4DE798-2B1A-4D1F-8AA7-1ED3742399CB}", typeof(GUID))]
public class Article : SearchResultItem 
public string ArticleSummary {get;set;}

public bool IsPublished {get;set;}

LinqScratchPad Additions

The LinqScratchPad has gained a few features, the more interesting feature being the ability to load external data into the scratchpad. This gives us the ability to post LINQ examples and for you to click on the link for it and it will load in your local instance. It is then up for you to run it. Think JSFiddle for LINQ. We think that this feature will be great for having examples in something like StackOverflow and for you to be able to run it against your Sitecore instance so you can see if it worked for you.

Crawler Method Additions

We have added the ability to Pause(), Stop() and Resume() a crawling of data. These are new methods on the Crawler and are very useful for interrupting a crawl if necessary. This was also a feature that was highly requested from the developer community.

Oracle Support

Finally, we have added support for Oracle on Sitecore 7. Nothing really to add here, we just knew it was a heavily requested feature.

  • Dev Team