Updates to schema and configuration

Some parts of your existing data domain's schema and configuration can be updated on a running data domain without performance impact, while other modifications may have performance implications. Additionally, a few aspects of your data domain's configuration and schema can only be modified before the data records are loaded, or cannot be modified at all. This topic addresses these categories, to help you make decisions about loading data and configuring your data domains.

This topic does not provide an exhaustive list of which properties on system records (or other aspects of configuration) can be modified and under which conditions. Instead, it explains the basic principles that help answer the following questions:
  • When are updates on a running data domain supported? Are there any restrictions, such as, are modifications allowed only before data records are loaded?
  • What is the impact (including performance impact) of an update and when is it reflected in the index? For example, does this modification cause delays in obtaining query results while the Endeca Server is re-indexing the data domain?
To answer these questions, it helps to understand how the Endeca Server maintains the knowledge of your data domain's records configuration. The following aspects control the various characteristics of your records loaded into the Endeca Server:
  • Index. Once you load source records into the Endeca Server, it creates an internal index. At the initial indexing time, the source records utilize primordial records and system records. Together, these records form the schema for the loaded source records — each primordial record serves as the basis for a system record, and each attribute in a system record represents a particular configuration setting. Thus, once the index is created based on source records, it already contains inside it settings that control various aspects of these records.

    Changing the items that affect the schema causes the Endeca Server to re-index its records. Examples of modifications that cause records re-indexing include modifying which attributes in your records are searchable, modifying the language value, and making changes to search characters. If these settings are changed, the Endeca Server must recreate the index for the data domain.

  • Additional configuration settings. Certain aspects of configuration do not affect the index, but may have an impact on how a query is processed, such as whether a record's attribute returned in the results has a display name (in addition to its internal value). Changes that fall into this category do not cause re-indexing and thus do not have performance costs. These changes affect subsequent queries — these are queries processed after the change was submitted to the Endeca Server.
  1. Changes that have performance costs.
    This table includes some examples of items whose modifications have performance costs associated with a partial or complete re-indexing of loaded records:
    Item Comments and restrictions on modifying (if exist)
    mdex-property_IsTextSearchable Specifies whether values from this attribute are searchable. No restrictions on these changes exist, except that they are only allowed for attributes of type string. Making such a change on an attribute that has many assignments on records has a performance cost due to re-indexing.
    mdex-property_TextSearchAllowsWildcards Affects whether wildcards are allowed in text search on attributes. Has a performance cost. A restriction for modifying this setting is that mdex-property_IsTextSearchable must also be set to true.
    mdex-property_IsPropertyValueSearchable Affects value search on standard attributes. Has a performance cost. Changing the value for this attribute is only allowed on attributes of type string.
    mdex-property_Language Specifies the language ID on an attribute. Has a performance cost. Changes are only allowed for supported language codes (see Supported languages). No other restrictions on these changes exist.
    mdex-config_EnableValueSearchWildcard This setting is part of the Global Configuration Record. It affects whether wildcards are allowed on value search. Has a performance cost. No restrictions on these changes exist.

    mdex-config_SearchChars

    Specifies search characters. Has a performance cost. No restrictions on these changes exist.
  2. Changes that have no performance costs.
    Examples of modifications that do not have performance costs include:
    Item Restrictions on modifying (if exist)

    system-navigation_Sorting

    system-navigation_ShowRecordCounts

    system-navigation_Select

    You can modify how the records are sorted, or whether record counts are displayed, or how refinements can be selected (one, or many). No restrictions on these changes exist.

    mdex-property_DisplayName

    mdex-property_Key

    You can modify the display name of an attribute or the name of the standard attribute. No restrictions on these changes exist.
    mdex-dimension_EnableRefinements You can modify whether to enable the display of refinements on managed attributes. No restrictions on this change exist.
    mdex-config_Spelling* You can modify various spelling settings. The values for spelling must not be negative. For the changes to take effect, you must run the updateSpellingDictionaries operation to update the spelling dictionaries.
    mdex-precedenceRule_* You can modify various precedence rules settings. No restrictions on these changes exist.

    mdex-dimension-value_Name

    mdex-dimension-value_Rank

    You can modify the display name and the ranking of the managed attribute value records. No restrictions on these changes exist. (Note, for managed attribute value records, these are the only two items that you can modify. All other characteristics of the managed attribute value records — their spec and their parent managed attribute value, as well as the associated managed attribute, and their synonyms — cannot be modified at all. Instead, you need to delete and add a new set of managed attribute values.)
  3. Exceptions. A few exceptions exist to the first two categories. These are various aspects of the schema or configuration that for various reasons can either be modified only before assignments on the system records exist, cannot be changed at all, or cannot be deleted once they are added. These exceptions include the following (this list is not guaranteed to be exhaustive):
    Item Restrictions on modifying (if exist)

    mdex-dimension_IsDimensionSearchHierarchical

    mdex-dimension_IsRecordSearchHierarchical

    The hierarchy setting for record search and attribute search can be modified only before loading records.

    mdex-dimension-value_Spec and mdex-dimension-value_Parent , which belong to the DDR of the associated managed attribute.

    mdex-dimension-value_Dimension and mdex-dimension-value_Synonyms , which belong to the MAVDR (Managed Attribute Value Description Record).

    These items, which together define the characteristics of the managed attribute value records, cannot be modified once they are added. If you delete the associated managed attribute, you can delete them too.
    mdex-property_IsUnique Affects whether an assignment on this attribute is unique across the entire corpus. You can change the setting (from true to false or vice-versa) only if no assignments for this attribute have been made (i.e., no record can have an assignment for this attribute). Note that a unique attribute must also be single-assign (i.e, if you set it to true, mdex-property_IsSingleAssign must also be set to true).
    mdex-property_IsSingleAssign Sets a standard attribute to be either single-assign (only one assignment from the attribute can be made on a record) or multi-assign (multiple assignments can be made on a record).
    The setting can be modified as follows:
    • A single-assign setting can be changed to a multi-assign setting only if the PDR is non-unique (i.e., mdex-property_IsUnique is set to false).
    • A multi-assign setting can be changed to a single-assign setting only if all assignments of this standard attribute are single assign. If at least one record has multi-assignments of this standard attribute, an attempted change will fail.

    mdex-config_SystemRecordVersion

    mdex-property_Type

    mdex-dimension_Key

    mdex-config_Key

    These items, which include the data type of attributes, can never be modified.