JSON Configuration

There are 3 required configuration options:

This is the typical JSON configuration that you should add to your appsettings.json

"ExamineX": {
    "AzureSearchServiceName": "YOUR-AZURE-COGNITIVE-SEARCH-ADMIN-SERVICE-KEY",
    "AzureSearchServiceKey": "35A7420DE8D1D1F7095AB929E0F71420",
    "SiteFriendlyName": "Your site's Friendly name associated with your license"
}

The ExamineX:SiteFriendlyName setting is associated with your license and must the same value you used when creating your license. If you are trialing ExamineX then you can enter any site friendly name and then if purchasing you should use the same name. This setting is also used to name the indexes in your Azure Search service.

The Azure Cognitive Search admin key is required for the ExamineX:AzureSearchKey setting because ExamineX needs to create and modify index, indexers and data source definitions.

Pre-production sites

The Standard licenses type supports pre-production indexes. An optional configuration setting can be used to configure a pre-production site while running under the same single license. These 2 configuration options provide the flexibility you may require to have pre-production site indexes in either a separate search service or separate indexes within the same search service depending on your requirements.

By Index

"ExamineX": {
    "EnvironmentType": "ByIndex"
}

If this config option is applied, then the index names within the same search service will be suffixed with -staging. For example, for the Internal index with a friendly site name of “My Website”, the index name would now be my-website-internal-staging

By Service

"ExamineX": {
    "EnvironmentType": "ByService"
}

If this config value is applied, then the search service that will be used will be the search service name suffixed with -staging. For example, if you’re search service name is “website-search” then this will configure indexes and the client to use a search service called website-search-staging

NOTE: Any other value specified for this optional app setting will just be treated as if there is no environment configured.

Multiple pre-production sites

You may have multipe pre-production websites and in this case there is another config option you can use to name that pre-production site:

"ExamineX": {
    "EnvironmentName": "-staging"
}

Changing this value will result in a different -staging term being suffixed. For example, if this was “-dev” then the suffix would become -dev.

Disabling Specific Indexes

It is possible to disable specific indexes from being initialized with ExamineX. In cases where you want to use the free tier of Azure search which limits you to 3 indexes total, you may wish to disable one of ExamineX indexes and let it remain as a default Lucene index instead. This is generally only useful if the index you are disabling isn’t used. As an example, you may not use the Members index in your site but you want to use the Umbraco Forms index. By disabling the Members index this now provides you with a free index to use for Umbraco Forms.

"ExamineX": {
    "DisabledIndexes": [
        "MembersIndex"
    ]
}

You can add any number of disabled index names to the DisabledIndexes array.

Disabling ExamineX

You can disable ExamineX with this setting:

"ExamineX": {
    "Disabled": true
}

Verbose Logging

You can adjust the logging output for debugging purposes for ExamineX by modifying Serilog config and adding an Override entry. For example:

"Serilog": {
    "MinimumLevel": {
        "Default": "Information",
        "Override": {
            "ExamineX.AzureSearch.AzureSearchIndex": "Debug"
        }
    }
}