The FFW team works with more than just Drupal and WordPress. We've built some award-winning Sitecore solutions as well, and in this new blog series, we'll be sharing our insights on refining Sitecore's search functionality to enhance the user experience.
Sitecore uses a search engine for two purposes in a standard installation:
- Content search – this is the default search mechanism in Sitecore Experience Management. The search engine indexes and finds content from the master, core or web databases.
- xConnect search – the Sitecore Experience Platform uses this search. The search engine indexes and finds contacts and interactions in the Experience Database.
Solr is the default search engine for content search and xConnect search for On-Premise installations. All tips in this blog post are based on Sitecore installations consuming the Solr search engine.
Sitecore supports three different search engines: Solr, Azure Search, and Lucene. The good news is that Sitecore actually provides an abstraction over the low-level details of working with these native search technologies. This means that we can use one ContentSearch API from Sitecore, to work with either Solr, Azure Search, and Lucene. And we should say that this ContentSearch API has been designed to be extremely friendly for the developers. Having LINQ to Sitecore and PredicateBuilder reduces the time spent on Sitecore search implementations so much that we often even forget to think about the performance. That’s why I put efforts to investigate the topic.
I’ve synthesized my Solr performance findings and put them into tips which will be released as a group of blog posts. Some of the tips that will follow in the blog series are inspired by posts written by great guys from the Sitecore community and others are based purely on our experience. Over the next few weeks, this blog series will become a useful list with Solr performance tips which could serve for a good reference to any Sitecore developer.
Here are some of the topics we'll be covering:
Thinking about index configurations
- Creating good custom search indexes
- Tuning-up your search indexes
- Achieving zero downtime during search index rebuilds
Building optimized search queries
- How to gain maximum performance with Sitecore Search API
- Getting all the search result data from the index vs Querying the Sitecore database
- Should we use Where or Filter in our search query?
If there are other things you'd like to learn about, let me know. Drop a comment at the bottom of this article to ask your questions.