Reindex a shared index
Describes a Search & Navigation feature that lets developers who share a developer index reindex a site without affecting other developers' data.
The most common use case for this functionality 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's
web.config
file (CMS 11) orappsettings.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 theirweb.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 ServiceUrl
must be configured, because Search & Navigation cannot distinguish a shared index from an unshared one.
Without theReindexMySitesOnly
setting, Search & Navigation treats the index as normal. So, it clears everything when the re-index function is executed.
Updated 6 months ago