I am working on a large multilingual website with several dozens of thousands pages are available in numerous languages. It also features news being released on a daily basis by tens of news editors under plenty of nested categories. Thus it was matter of time for me to be asked to implement an adequate RSS Feed solution to expose all the possible data.
Luckily, Sitecore has built-in RSS Feed feature, but unfortunately it has very limited implementation by data driven using Sitecore Queries, obviously this is quite a legacy feature was added into Sitecore way before version 7.0 with its revolutionary Content Search API.
What is wrong with this old-fashioned Sitecore Query:
- it is limited in its applicable functionality
- has complicated synthax
- isn't easy to debug and troubleshoot, especially on complex conditions
- is slooooooow (even fast query is slow!)
- talks to database and generates cache for touched items
That was absolutely obvious that I should use Content Search API
. I googled around and came across some implementation done by Douglas Couto
for Sitecore 7 and Lucene. I reworked it to be compatible for versions 9.*+
and added few new features.
Once you get the items from either TDS serialization or Sitecore package, a new Content search section is added to RSS Feed template to drive the data out of Content Search API rather than Sitecore Query:
All the benefits of Content Search API are available to you from now on. Using this new section one may fine tune the data to be exposed by not just certain page templates, but also filter to be located under specific node, has certain tags and specify recency criteria for that filtered data.
Hope this helps!