Site search with the .NET Core Renderer
There are two main strategies that you can use to index a site built with the .NET Renderer:
- External search
- Sitefinity search
You can implement external third-party search engines to periodically index your Sitefinity site. These search engines provide their own API for querying that search index. You can leverage that API to build custom search box and search results widgets, which you can place on your .NET Core pages.
: Examples of such search engines include:
Sitefinity .NET Core Renderer is integrated with the Sitefinity Search service.
For more information, see Site search.
The .NET Renderer page editor, provides the following search widgets:
You use these widgets to create the search capabilities on your .NET Core pages. You need to place the widgets on the corresponding pages and configure them to work with the desired search index in the CMS.
For more information, see Compare search services.
Index MVC vs. .NET Core pages
Sitefinity CMS search indexes content and pages. Indexing MVC pages works like an external search engine. This means that the entire output HTML is scanned and indexed. This is possible, because the pages are executed and indexed in the memory, and because they are rendered inside the CMS, they can be invoked in-process.
The .NET Core Renderer is different, because it is not part of the running CMS process, and the output HTML cannot be accessed. Therefore, the Renderer provides the ability to index individual properties from your widget entity.
You must decorate the widget properties that you want to index with a special attribute – [ContentContainer]
This attribute is also used on the Content block widget to allow its content to be indexed by the Sitefinity search index. This is possible, because the property value is stored in the CMS and the CMS can index it.
RECOMMENDATION: Sitefinity CMS indexes the raw value of the property and does not know of any modifications to it that are done by the Renderer. Therefore, we recommend rendering the property value, which holds the content to be indexed, without additional processing.