Ingest Product index schema

The complete data mappings from specification, database and schema are shown for the product category.

Product index schema design

Definitions for field type aliases (in it​​​alics) are described in Index Field Type Aliase​​​s and Usages page. For a complete listing of Elasticsearch index fields and parameters, see Elasticsearch index field types. For information about calling the Ingest service, see Search Ingest Service API.

​Index Field​ Name​ ​Index Field Type and Options​​​ V9.0 Equivalent Index Field Name ​​Description
Internal Me​​​ta Data​​​​​​
​_id ​internal ​catentry_id id/store + id/language + id/catalog + id/catentry
​__meta/version/min ​integer - ​Minimal compatible version of the runtime to work with this document
​__meta/version/max ​integer ​- Latest compatible version of the runtime that works with this document
​​__meta/created ​date ​- Creation date and time of this document
__meta/modified ​date ​indexedTime ​Last modification date and time of this document
​​Document Identifier​​
​id/store id_string ​storeent_id Internal id of the owning store
id/​language id_string ​- The identifier of the language​
id/​catalog id_string catalog_id​ ​Catentry's parent catalog
id/​catentry id_string ​catentry_id ​Catentry's basic attributes
​id/member ​​id_string ​member_id The reference number that identifies the owner of the catalog entry
​​identifier/specification id_string ​- Set to "​product"
identifier/​store id_string ​- ​A string that uniquely identifies the owning store
identifier/​language id_string ​- The language locale of this catalog entry
​​identifier/catalog id_string ​- ​The external identifier of the catalog
​identifier/sku/raw raw - This is the SKU of the catalog entry​
​identifier/sku/normalized normalilzed ​- Same as above​
​identifier/mpn/raw raw mfPartNumber_ntk The reference number that identifies the manufacturer part number of the catalog entry​
​identifier/mpn/normalized normalilzed - Same as above​
​​Language Sensitive Data​​​
​name/raw raw ​name_ntk_cs The language-dependent name of this catalog entry
​​name/normalized normalized ​name_ntk ​Same as above
​name/text ​text ​- ​Same as above
​name/​​en_US, fr_FR, de_DE, it_IT, es_ES, pt_BR, ru_RU, ro_RO, ar_EU, ja_JP, ko_KR english, french, german, italian, spanish, portuguese​, russian, romanian, arabic​​, japanese, korean ​name ​Same as above
​name/override/raw ​raw ​nameOverride The store level override for name of this catalog entiry
​​​name/override/normalized normalized ​- ​​Same as above
​​name/override/text ​text ​- ​​Same as above
​name​/override/​​en_US, fr_FR, de_DE, it_IT, es_ES, pt_BR, ru_RU, ro_RO, ar_EU, ja_JP, ko_KR ​english, french, german, italian, spanish, portuguese​, russian, romanian, arabic​​, japanese, korean ​- ​​Same as above
​keyword/text ​text - A keyword used for searching
​keyword/​en_US, fr_FR, de_DE, it_IT, es_ES, pt_BR, ru_RU, ro_RO, ar_EU, ja_JP, ko_KR english, french, german, italian, spanish, portuguese​, russian, romanian, arabic​​, japanese, korean​ ​keyword ​Same as above
​keyword/override/text ​raw ​keywordOverride​ The store level override for short description of this catalog entiry
​​keyword/override/​en_US, fr_FR, de_DE, it_IT, es_ES, pt_BR, ru_RU, ro_RO, ar_EU, ja_JP, ko_KR​ ​english, french, german, italian, spanish, portuguese​, russian, romanian, arabic​​, japanese, korean​ ​- ​Same as above
​​​description/raw raw ​- ​A short description of this catalog entry
​description/text ​text ​- ​Same as above
​description/​​en_US, fr_FR, de_DE, it_IT, es_ES, pt_BR, ru_RU, ro_RO, ar_EU, ja_JP, ko_KR ​english, french, german, italian, spanish, portuguese​, russian, romanian, arabic​​, japanese, korean​ ​shortDescription ​Same as above
​description/override/raw raw ​shortDescriptionOverride​ ​The store level override for short description of this catalog entiry​
​​description/override/text ​text ​- ​​Same as above
​​​description/override/​​en_US, fr_FR, de_DE, it_IT, es_ES, pt_BR, ru_RU, ro_RO, ar_EU, ja_JP, ko_KR ​english, french, german, italian, spanish, portuguese​, russian, romanian, arabic​​, japanese, korean​ - ​​​Same as above
url/​thumbnail ​raw ​thumbnail The thumbnail image path of this catalog entry​
url/​image ​raw ​fullImage The full image path of this catalog entry
url/​​seo ​raw ​- ​The SEO URL of this catalog entry
​url/override/thumbnail ​raw ​The store level override for thumbnail image path of this catalog entry​
​url/override/image ​raw ​The store level override for full image path of this catalog entry​​
Properties​​​
​manufacturer/raw raw ​mfName_ntk_cs The name of the manufacturer of this catalog entry
manufacturer/normalized normalized mfName​_ntk ​Same as above
manufacturer/text text mfName​ ​Same as above
​seller/raw raw - The name of the seller of this catalog entry
seller/normalized normalized - ​Same as above
seller/text text -​ ​Same as above
​type id_string ​catenttype_id_ntk_cs ​product, item, package, bundle
​buyable ​boolean buyable​ Indicates whether this catalog entry can be purchased individually
​displayable ​boolean ​published ​Indicates whether this catalog entry should be displayed for the language
​start date​ ​startdate ​The date when this catalog entry is introduced
​end ​date ​enddate The date when this catalog entry is withdrawn
​state ​boolean ​- ​This flag defines whether this entry can be used as Product Variant
​subscription/type ​raw ​subscripType The type of the subscription this catalog entry can be subscribed to
​​subscription/recurring ​boolean ​​disallowRecOrder ​Indicates whether this catalog entry is prohibited from being purchased through recurring order. Default value is true.
​Navigational Data​​​​
relationship/name raw ​- ​One way relationship. Supported values: product, item, package, bundle, variant​
​relationship/product/id ​id_string parentCatentry_id​ ​Catentry's parent product
​relationship​​/product/sequence ​float ​​​item_sequence ​​Catentry's display sequence
​​relationship/product​/group ​​id_string grouping_parentCatentry_id ​​Used for result grouping of items belonging to the same product​
​relationship/variant/id ​id_string parentVariant_id ​Variant's parent product
​relationship​​/variant/sequence ​float - ​​Variant's display sequence
​​relationship/item/id ​​id_string ​childCatentry_id ​​Catentry's child catentry
​relationship​​/item/sequence ​float ​​- ​​Catentry's display sequence
​relationship/set id_​string ​productset_id A list of product sets that this catentry has participated in
​relationship/component/id id_​string components A list of identifiers for components of bundle's and packages
​relationship/component/quantity float components The quantity of each of the components above
​category/catalogId-pathId/name ​normalized categoryname ​The name of this parent sales category (see below)​catalogId - master or default catalog IdpathId - hypen separated category path Ids leading up to root category​
​category/catalogId-pathId/catalog id_string - ​The sales catalog of this current document used for sequence (see below)catalogId - master or default catalog IdpathId - hypen separated category path Ids leading up to root category​
​cat​egory/catalogId-pathId/parent ​id_string ​- ​The parent category of this current document used for sequence (see below)catalogId - master or default catalog IdpathId - hypen separated category path Ids leading up to root category
​category/catalogId-pathId/sequence ​float ​sequence_*​ The leaf category level (shallow) sequence defined in CMCcatalogId - master or default catalog IdpathId - hypen separated category path Ids leading up to root category
​category/catalogId-pathId/path/id ​id_string ​-​ A list of category internal ids leading up to the root categorycatalogId - master or default catalog IdpathId - hypen separated category path Ids leading up to root category
​category/catalogIdvarname>-pathId/path/name ​raw ​-​ Similar list of categories leading up to the root, except this field stores the name of the category insteadcatalogId - master or default catalog IdpathId - hypen separated category path Ids leading up to root category
​path/catalogId> ​​raw ​parentCatgroup_id_facet, parentCatgroup_id_search, parentCatgroup_id_path ​For example, when a "dress" category (id:10001) with path "/1/3/10001" is indexed for sales catalog 10502, this field stores the original form of the pathcatalogId - master or default catalog Id
path/catalogId/tree hierarchy ​- This is the tokenized version for the path field above, e.g. 1, 3, 10001catalogId - master or default catalog Id
​path_name/catalogId hierarchy ​Category hierarchy leading up to root category
Prices​​​
prices/​list/currency float ​price_* Default contract list price in a given currency
prices/​offer/currency float ​price_* Default contract offer price in a given currency
prices/​contract/currency>​ float ​price_* A buyer contract price in a given currency
​Natural Language​​​​
​natural/nouns/raw raw ​- ​This field contains nouns extracted from indexed fields in this current document for use with Natural Language search
​natural/nouns/normalized normalized ​- Same as above
​natural/adjectives/raw raw ​- ​This field contains all non-numeric values from searchable atttributes of the current document
​natural/adjectives/normalized ​normalized ​- Same as above
​natural/names/raw raw ​- ​This field contains names extracted from the current document using the Stanford name-entity-extractor
​natural/names/normalized normalized ​- Same as above
​natural/categories/raw raw ​- ​This field contains a list of normalized category names copied from category/name field
​natural/categories/normalized ​normalized ​- Same as above
​natural/attribute_type/colors/red ​range ​- This is the MatchMaker specific field for handling color.Attribute type can be either defining or descriptive
​natural/attribute_type/colors/green range ​- Same as above
​natural/attribute_type/colors/blue range ​- Same as above
​natural/attribute_type/measurements/<unit_of_measure> range ​- This is the MatchMaker specific fields for handling measurements. The followng are the supported unit of measures:- Length - kilometer, meter, centimeter, millimeter, micrometer, nanometer, foot, inch, mile, yard- Weight - metric tonne, kilogram, gram, milligram, stone, pound, ounce- Time - nanosecond, microsecond, millisecond, second, minute, hour, day, week, month, year- Volume - gallon, liter, milliliter Attribute type can be either defining or descriptive
​​natural/attribute_type/dimensions/width/unit_of_measure range ​- This is the MatchMaker specific fields for handling dimension. The followng are the supported unit of measures:- kilometer, meter, centimeter, millimeter, micrometer, nanometer, foot, inch, mile, yard​Attribute type can be either defining or descriptive
​natural/attribute_type/dimensions/length/unit_of_measure range ​- Same as above
​natural/attribute_type/dimensions/height/unit_of_measure range ​- Same as above
natural/keywords/normalized normalized - This field contains keywords extracted from indexed fields in this current document for use with Natural Language search.
natural/path_name/normalized normalized - This field contains the normalized format of the full category path names.
​natural/locations​/raw raw ​- ​This field contains any location specific name extracted by the Stanford part-of-speech tagger
​natural/locations​/normalized ​normalized ​- Same as above
​​natural/intents/raw raw ​- ​This field contains potential intents that can be used for matching with shopper's intent at query time
​​natural/intents/normalized ​normalized ​- Same as above
Merchandising ​​Associations​
​​associations/id ​​id_string ​- ​​The catalog entry id of the target of this merchandising association; mapped to MASSOCCECE.CATENTRY_ID_FROM
​​associations/type ​​id_string ​- ​​The identifier of the merchandising association type; mapped to MASSOCCECE.MASSOCTYPE_ID​
​​associations/rank float ​- ​​The sequence number used for display order​; mapped to MASSOCCECE.RANK
​​associations/quantity ​​float ​- ​​The quantity related to this association; mapped to MASSOCCECE.QUANTITY
​​Attributes​
​​attribute/identifier ​​id_string ​- ​​The external identifier of the attribute; mapped to ATTR.IDENTIFIER​
​attribute​​/id id_string ​- The internal identifier of the attribute; mapped to ATTR.ATTR_ID​​
​attribute/usage ​raw ​- ​​Defines the usage of the attribute; mapped to ATTR.ATTRUSAGE
​​​​attribute/value/raw ​​raw ​- ​​​The string value of this attribute value; mapped to ATTRVALDESC.STRINGVALUE​, ATTRVALDESC.FLOATVALUE, or INTEGERVALUE
​​​​attribute/value/normalized ​​normalized ​- Same as above
​attribute/source raw ​- This is a special index document field which contains another sub-document that provides more detailed information regarding this attribute. The description of each encoded field and value are listed immediately below.
​​attribute/source: sequence float ​- The display order of attributes in an attribute group or in the root of the attribute dictionary; mapped to ATTR.SEQUENCE
​​attribute/source: group raw ​- ​​Defines the group name of the attribute; mapped to ATTRDESC.GROUPNAME
​​attribute/source: name/raw raw ​- The​ name of this attribute; mapped to ATTRDESC.NAME
​​attribute/source: name/text ​text ​- ​​Same as above
​​attribute/source: name/normalized ​​normalized ​- ​​Same as above
​​attribute/source: value/identifier ​​id_string ​- The external identifier for this attribute value; mapped to ATTRVAL.​​IDENTIFIER
​​attribute/source: value/id​ ​id_string ​- The internal unique id for this attribute value; mapped to ATTRVAL.ATTRVAL_ID​​
​​attribute/source: value/raw ​​raw ​- ​​​The string value of this attribute value; mapped to ATTRVALDESC.STRINGVALUE​, ATTRVALDESC.FLOATVALUE, or INTEGERVALUE
​​attribute/source: value/sequence​ ​float ​- ​​A number that determines the display order of a list of allowable attribute values for this attribute; mapped to ATTRVALDESC.SEQUENCE
​​attribute/source: value/unit/identifier ​​id_string ​- ​​The unit of measure identifier in which this attribute is measured; mapped to ATTRVALDESC.QTYUNIT_ID
​​attribute/source: value/unit/name/raw ​raw ​- ​​The description of the quantity unit; mapped to QTYUNITDSC.DESCRIPTION
Facets​
​​facets/<id>/value/normalized ​​normalized ​- The string value of a facetable attribute value
​​facets/<id>/value/raw ​​raw ​- Same as above
Attachments​​​​
attachments/​id​ ​id_string ​- ​The internal identifier of the attachement asset
attachments/​identifier​ id_string - The identifier of the attachment object type
attachments/​store id_string - The owning store of the attachment object
attachments/​name/raw​ ​raw ​- T​he language-dependent name for the attachment relation
attachments/​description/raw​ raw ​- The short description for the attachment relation​
attachments/​url​ raw ​- The attachment asset path is the relative path of the attachment asset which includes the directory path and the file name of the attachment asset
attachments/​mime​​ normalized ​- ​The MIME type encoding of the attachment asset
attachments/​sequence​ ​float ​- The sequence number for displaying the attachment relation
attachments/​rule​ raw ​​- ​The attachment relation usage identifier that describes the usage of this attachment relation
​​​Images
images/sequence ​float ​- ​The sequence number for displaying the angle image attachment
​​images/image id_string ​- ​​The angle image attachment asset path is the relative path which includes the directory path and the file name of the angle image attachment
​images/thumbnail id_string ​- Same as above
​images/name id_string ​- ​T​he language-dependent name for the angle image attachment​
Auto-Completion and Spell Correction
default/​correction ​text​ ​spellCheck*, spellCorrection​ ​Use term suggester on this field at query time to provide term based spell correction function. Reason of having a separate dedicated field for term suggestion is to allow different terms to be suggested. Re-using the default search field cannot provide this level of fine grain control. By default, only name, description, and keyword are copied into this field.
default/completion ​completion ​defaultTerms ,defaultSuggest, term_suggest, name_suggest, shortDesc_suggest, partNumber_suggest By feeding a list of ​​​all possible comp​​letions, and the completion suggester builds them into a finite state transducer, an optimized data structure that resembles a big graph. To search for suggestions, Elasticsearch starts at the beginning of the graph and moves character by character along the matching path. Once it has run out of user input, it looks at all possible endings of the current path to produce a list of suggestions. This data structure lives in memory and makes prefix lookups extremely fast, much faster than any term-based query could be​. It is an excellent match for autocompletion of names and brands, whose words are usually organized in a common order. When word order is less predictable, edge n-grams (search_as_you_type) can be a better solution than the completion suggester. By default, only name, description, and keyword are copied into this field.
default/​suggestion ​search_as_you_type ​​defaultTerms, defaultSuggest, term_suggest, name_suggest, shortDesc_suggest, partNumber_suggest ​The search_as_you_type field type is a text-like field that is optimized to provide queries that serve an as-you-type completion use case. It creates a series of (n-gram) subfields that are analyzed to index terms that can be efficiently matched by a query that partially matches the entire indexed text value. Both prefix completion (i.e matching terms starting at the beginning of the input) and infix completion ​​(i.e. matching terms at any position within the input) are supported. By default, only name, description, and keyword are copied into this field​.
Default​​
default/​search/text ​text defaultSearch A convenient field for performing text search with the standard analyzer. Data is pre-configured to be copied into this field: name, description, keyword, category name, and certain searchable attribute values​Note that manufacturer and sku cannot be copied into this field as the brand name and part number will be tokenized and generate unnecessary false hits
default/​search/​en_US, fr_FR, de_DE, it_IT, es_ES, pt_BR, ru_RU, ro_RO, ar_EU, ja_JP, ko_KR english, french, german, italian, spanish, portuguese​, russian, romanian, arabic​​, japanese, korean - By default, all fields that ends with *.en_US, *.fr_FR, etc, will be copied to their corresponding search/* language specific tokenized field
default/​search/normalized normalized - Same as the above default search field, except the data type here is normalized. Data pre-configured is also the same as search.text, plus manufacturer and sku
​default/attachment/text ​text ​- ​Same as the above default search field for text searching, except this field is only scope to name and description of ​​attachments.
​​​Workspace Data ​ ​
​​workspace_name ​id_string ​Describes name of the workspace. If approvedcontent then it will be "Base"
​workspaces ​id_string ​​​List of workspace details.

Dynamic Template​ Name​ Template Definition V9.0 Equivalent Index Field Name ​​Description
​Attributes match_mapping_type: *path_match: attributes.*mapping:

type: id_string

fields:​

number: float

date: date

raw: raw

normalized: normalized

text: text

en_US, fr_FR, de_DE, it_IT, es_ES, pt_BR, ru_RU, ro_RO, ar_EG, ja_JP, ko_KO

​adi_f*adf_f*ads_f* ​Catentry's attribute dictionary attributes: map to tables in attribute dictionary
​Prices ​match_mapping_type: *path_match: prices.*​mapping:

type: float

​listprice_*price_* List prices; mapped to table LISTPRICEContracted price or standard offer price; mapped to table
​Inventories ​match_mapping_type: *path_match: inventories.*mapping:

​type: integer​

​inv_strlocqty_* ​Inventory counts; mapped to table INVENTORY
​Sequences and Metrics ​match_mapping_type: *path_match: sequences.*mapping:

​type: float

​sequence_*​ ​Dynamic field to represent CMC (leaf category level) shallow sequencing​
​Natural ​​match_mapping_type: * path_match: natural.*mapping:

​type: double_range​​

fields:

​measur​ements: double_range

colors: double_range

width: double_range

length: double_range

height: double_range

​NA ​Natural field mapping for NLP searching
​Category ​match_mapping_type: * path_match: category.* mapping:

​type: keyword, float​​​

fields:

​parent: keyword

​sequence: float

catalog: keyword

name: keyword

path.id: keyword

path.name: keyword

​category.* ​Category field which contains information about parent and path leading to that category.