Understanding which records and properties can be updated

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:
  1. 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.

    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 an attribute is 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 attributes (and has a performance cost). 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 attributes of type string. 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. 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.
    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 endeca-cmd command for updating spelling dictionaries.
    mdex-precedenceRule_* You can modify various precedence rules settings. No restrictions on these changes exist.
  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-property_IsUnique Affects whether an assignment on this attribute is unique. You can modify it only if no assignments exist on the records (typically, this occurs when data records have not been loaded yet, but the schema records already exist in the index). Also, if you set it to true, mdex-property_IsSingleAssign must also be set to true.
    mdex-property_IsSingleAssign Affects whether at most one or more values from a single attribute can be assigned on a record. Cannot be modified.
    Deleting attributes marked as unique Cannot delete any records that have assignments to the attribute marked as unique. Typically, this means that deleting attributes marked as unique can be done only before loading data records.

    mdex-config_SystemRecordVersion

    mdex-property_Type

    mdex-dimension_Key

    mdex-config_Key

    These items, which include type on attributes, can never be modified.
    Managed attribute values Can be added; cannot be deleted, or modified after they are added.