HawkSearch Field Setup

Overview

Fields below have to be defined in Hawksearch in order for indexing to be working properly. Go to your environment to the Dashboard → Workbench → Data Configuration → Fields to define them.

Settings mentioned in the Field Type & Other / Advanced columns represent the minimum required settings to be configured on each field. Extra settings can be added as needed, for example: making fields queryable, defining boosting, or switching between different field types.

General Fields

These fields apply to both Optimizely commerce entities (products/variants/packages/bundles) and cms entities (cms pages) and are automatically sent by the Optimizely-Hawksearch Connector.

LabelField NameSave AsField TypeOther / Advanced
IdIdTextField values are NOT stemmedPrimary Key?: Yes
Include in results?: Yes
NameNameTextField values indexed "as is" AND are stemmedInclude in results?: Yes
StartPublishStartPublishDatetimeField values are NOT stemmedInclude in results?: Yes
StopPublishStopPublishDatetimeField values are NOT stemmedInclude in results?: Yes
IndexedOnIndexedOnDatetimeStored only, not used for search nor facetsInclude in results?: Yes
ContentLinkContentLinkTextStored only, not used for search nor facetsInclude in results?: Yes
ParentLinkParentLinkTextStored only, not used for search nor facetsInclude in results?: Yes
Item TypeItemTypeTextField values are NOT stemmedInclude in results?: Yes
UrlUrlTextStored only, not used for search nor facetsInclude in results?: Yes

Commerce specific fields

These fields apply to only to commerce entities (products/variants/packages/bundles) and are automatically sent by the Optimizely-Hawksearch Connector.

LabelField NameSave AsField TypeOther / Advanced
CodeCodeTextField values indexed "as is" AND are stemmedInclude in results?: Yes
CategorycategoryTextField values indexed "as is" AND are stemmedIs Hierarchical Field?: Yes

Include in results?: Yes
CatalogIdCatalogIdTextField values are NOT stemmedInclude in results?: Yes
DisplayNameDisplayNameTextField values indexed "as is" AND are stemmedInclude in results?: Yes
MarketsMarketsTextField values indexed "as is" AND are stemmedInclude in results?: Yes
Inventory_{WarehouseCode}**Inventory_{WarehouseCode}
ex: Inventory_London
NumericField values are NOT stemmedInclude in results?: Yes
Price{MarketId}{Currency}**Price{MarketId}{Currency}
ex: Price_UK_GBP
NumericField values are NOT stemmedInclude in results?: Yes
Child_DisplayName***Child_DisplayNameTextField values indexed "as is" AND are stemmedIs Child Field?: Yes
Include in results?: Yes
Child_Code***Child_CodeTextField values indexed "as is" AND are stemmedIs Child Field?: Yes
Include in results?: Yes
Child_Url***Child_UrlTextStored only, not used for search nor facetsIs Child Field?: Yes
Include in results?: Yes

** Inventory and price fields should be defined only if indexing this information is enabled. Please refer to Configuring the Connector for more details on how to enable/disable price or inventory indexing. For variants, only the Separate Documents indexing strategy is available for the price and inventory indexing out of the box. For packages, each strategy is available.

*** These fields are variant specific fields and are indexed only in the case of Variant as Child of Parent indexing strategy.

CMS specific fields

These fields apply to only to CMS entities (CMS pages) and are automatically sent by the Optimizely-Hawksearch Connector.

LabelField NameSave AsField TypeOther / Advanced
SiteIdSiteIdTextStored only, not used for search nor facetsInclude in results?: Yes

Extended Field Setup - For Optimizely Foundation

These fields were added to exemplify how the structure of the indexed documents can be enhanced with project specific properties (based on the Optimizely Foundation solution).

Foundation Commerce Entity

These fields apply to any to any commerce entity (product/variant/package/bundle).

LabelField NameSave AsField TypeOther / Advanced
ImageUrl**ImageUrlTextStored only, not used for search nor facetsInclude in results?: Yes
ImageAltImageAltTextStored only, not used for search nor facetsInclude in results?: Yes

Foundation Generic Variant

LabelField NameSave AsField TypeOther / Advanced
ColorColorTextField values are NOT stemmedInclude in results?: Yes
Strategies: Variant Attributes Roll-up, Separate Documents
SizeSizeTextField values are NOT stemmedInclude in results?: Yes
Strategies: Variant Attributes Roll-up, Separate Documents
SkuSkuTextField values are NOT stemmedInclude in results?: Yes

Strategies: All
MpnMpnTextField values are NOT stemmedInclude in results?: Yes
Strategies: All
UpcUpcTextField values are NOT stemmedInclude in results?: Yes
Strategies: All
Description**DescriptionTextField values indexed "as is" AND are stemmedInclude in results?: Yes
Strategies: All
Child_ColorChild_ColorTextField values are NOT stemmedIs Child Field?: Yes
Include in results?: Yes
Strategies: Variant as Child of Parent,
Separate Documents
Child_SizeChild_SizeTextField values are NOT stemmedIs Child Field?: Yes
Include in results?: Yes
Strategies: Variant as Child of Parent,
Separate Documents

Note: Strategies refers to the variant indexing strategy adopted in the project.

Foundation Generic Product

LabelField NameSave AsField TypeOther / Advanced
ManufacturerManufacturerTextField values indexed "as is" AND are stemmedInclude in results?: Yes
ModelModelTextField values are NOT stemmedInclude in results?: Yes
ModelYearModelYearTextField values are NOT stemmedInclude in results?: Yes
WarrantyWarrantyTextStored only, not used for search nor facetsInclude in results?: Yes
BrandBrandTextField values indexed "as is" AND are stemmedInclude in results?: Yes
DepartmentDepartmentTextField values indexed "as is" AND are stemmedInclude in results?: Yes
OnSaleOnSaleBooleanField values are NOT stemmedInclude in results?: Yes
NewArrivalNewArrivalBooleanField values are NOT stemmedInclude in results?: Yes
ProductStatusProductStatusTextField values are NOT stemmedInclude in results?: Yes
Description**DescriptionTextField values indexed "as is" AND are stemmedInclude in results?: Yes
LongDescription**LongDescriptionTextField values indexed "as is" AND are stemmedInclude in results?: Yes

Standard Page

LabelField NameSave AsField TypeOther / Advanced
MetaTitleMetaTitleTextField values indexed "as is" AND are stemmedInclude in results?: Yes
KeywordsKeywordsTextField values indexed "as is" AND are stemmedInclude in results?: Yes
ImageUrl**

(BackgroundImage property in Foundation)
ImageUrlTextStored only, not used for search nor facetsInclude in results?: Yes
LongDescription**

(MainBody property in Foundation)
LongDescriptionTextField values indexed "as is" AND are stemmedInclude in results?: Yes

Location Item Page

LabelField NameSave AsField TypeOther / Advanced
MetaTitleMetaTitleTextField values indexed "as is" AND are stemmedInclude in results?: Yes
KeywordsKeywordsTextField values indexed "as is" AND are stemmedInclude in results?: Yes
ImageUrl**ImageUrlTextStored only, not used for search nor facetsInclude in results?: Yes
Description**

(MainIntro property in Foundation)
DescriptionTextField values indexed "as is" AND are stemmedInclude in results?: Yes
LongDescription**

(MainBody property in Foundation)
LongDescriptionTextField values indexed "as is" AND are stemmedInclude in results?: Yes
CoordinatesCoordinatesGeoPointStored only, not used for search nor facetsInclude in results?: Yes

** ImageUrl, Description and LongDescription fields have been reused between different types of entities since in Hawksearch there’s no hard link between fields and entity types (like the ones Optimizely platform requires)

NodeContent - Hierarchy Mapping

This page shows the relations between NodeContent (Optimizely category) and Hierarchy (Hawksearch category).

Optimizely Node PropertyHawksearch Hierarchy PropertyData TypeAlwaysDescription
CategoryId
(image)
HierarchyIdStringYesUnique identifier for the hierarchy entry
Display NameNameStringYesDisplay name for the hierarchy entry
ParentCategoryIdParentHierarchyIdStringYesThe HierarchyId of the parent hierarchy for this hierarchy entry. If this hierarchy entry is a top-level, the value passed should be "1". For instance, if in Optimizely a category resides directly below the catalog root, then this category will be indexed as an hierarchy with ParentHierarchyId = “1”.
False if Category is expired, true otherwiseIsActiveBooleanNoIndicates if the hierarchy entry is active and should be displayed. It is not required to send inactive hierarchies, but some product systems generate them for sending.