Reindex a shared index
3 min
The most common case for reindexing involves multiple developers who share a data index in a development environment. For example, a team of developers on the same project shares the same data structure with unified mappings and settings. Implementing this feature lets you reindex without affecting other people's data.
- Prerequisites Optimizely Content Management System (CMS) Alloy or Optimizely Customized Commerce Quicksilver sample site (CMS 11 and Customized Commerce 13) installed from the Visual Studio Extension. See also Install Optimizely (ASP.NET5 Core) for CMS 12 and Customized Commerce 14 installation instructions.
- Optimizely Search & Navigation service URL and default index name.
- Optimizely Search & Navigation client-side resource base URL.
- Install the following packages. To get the latest development packages, use PM> Install-Package EPiServer.Find.
- EPiServer.Find
- EPiServer.Find.Cms
- Open the Quicksilver or Alloy site'sweb.config file (CMS 11) or appsettings.json (CMS 12).
- Go to <appSettings> (CMS 11) and update (add if missing) the following entry:
<add key="episerver:Find.ReindexMySitesOnly" value="true"/>Possible values
- True – If the user reindexes the site, the data of other developers sharing that index is unaffected.
- False or key missing – If the user reindexes the site, it wipes out all data.
Note Update the Search & Navigation Service URL and the default index name by updating <episerver.find serviceUrl="" defaultIndex=""/>.
In CMS 12 appsettings.json, add the following:
"Find": {
"Cms": {
"ReindexMySitesOnly": true
}
}Alternatively, in CMS 12, you can add this to the startup.cs file.
services.Configure<EPiServer.Find.Cms.FindCmsOptions>(options => {
options.ReindexMySitesOnly = true;
});- Important notes The Optimizely Search & Navigation index is not designed to be shared across sites. Developers can only share it if ReindexMySiteOnly is set to true.
- Be sure that no property change is made while sharing the data index. This could lead to data loss and possibly a non-operational index.
- For best results, all developers who share a data index should add the ReindexMySitesOnly key to their web.config. If not, a developer may accidentally remove his teammate’s data.
- Developers cannot share a SiteDefinition and copies of a database. We expect developers to share source code but set up different sites. If developers want to test with their data, they need to set up a new local site, then manually export/import the site page/content data only.
- Both ReindexMySitesOnly and a Service Url must be configured, because Search & Navigation cannot distinguish a shared index from an unshared one. Without the ReindexMySitesOnly setting, Search & Navigation treats the index as normal. So, it clears everything when the re-index function is executed.