HomeDev guideRecipesAPI Reference
Dev guideUser GuidesLegal TermsNuGetDev CommunityOptimizely AcademySubmit a ticketLog In
Dev guide

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

  1. Install the following packages. To get the latest development packages, use PM> Install-Package EPiServer.Find.

    • EPiServer.Find
    • EPiServer.Find.Cms
  2. Open the Quicksilver or Alloy site'sweb.config file (CMS 11) or appsettings.json (CMS 12).

  3. 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.