HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Configure facets and filters

Describes the various parts of the configuration elements related to facets and filters in Optimizely Customized Commerce 13.

Configuration elements

The configuration file is located in the Configs_folder and is called _Mediachase.Search.Filters.config. The file contains the following elements:

  • Filter is the Facet Group.
  • Filter [field] is the name of the field/meta-field being filtered.
  • Filter/Description contains the localized text for a facet group. This determines what is displayed at the top of the side menu.
  • Filter/Values contains all facets for that facet group.

Facet types

Each facet group should only have one type of facet. Facet types are described below.

  • SimpleValue – A string value.
    • [key] – Attribute is not used but should be lowercase.
    • [value] – The lookup key value; must be lowercase.
    • Descriptions [defaultLocale] – Specifies which localized description is used if no localization is specified.
    • Description  [locale] – Specifies the culture code of the filter description.
    • Description – The value to display in the SideMenu, based on the locale.
  • PriceRangeValue – Price ranges.
    • [key] – The lookup key value; must be lowercase. The options are under-number, number-number, and over-number
    • [currency] – A three-character currency code that corresponds to the code selected in the tiered pricing collection of a SKU.
    • [lowerbound] – The numeric lower end of the range.
    • [upperbound] – The numeric upper end of the range.
    • [lowerboundincluded] – Must be true or false. It indicates whether the lower-bound value is included in the filtered range. For example, if lowerboundincluded is set to true for a $200-$300 filter range, items that are exactly $200 are included in the results.
    • [upperboundincluded] – Must be true or false. It indicates whether the upperbound value is included in the filtered range.
  • RangeValue – Numeric ranges; values must be 0-10.
    • This type matches a range of numeric values.
    • This filter data type only supports values less than 10.
    • If a numeric type like float or decimal is used in defining the meta-class, an additional attribute setting, you must use  numeric=*true*.
    • You can use a string meta-field type. The numeric attribute is not relevant
    • These values, including numeric values, are passed as string values to Lucene, which treats them as Double values.
    • Attributes are a subset of the PriceRangeValue filter data type.

Example: Facets in the Optimizely Customized Commerce sample site.

<SearchConfig version="1.0">
      <SearchFilters>
        <Filter field="brand">
          <Descriptions defaultLocale="en">
            <Description locale="en">Brand</Description>
            <Description locale="sv">Märke</Description>
          </Descriptions>
          <Values>
            <SimpleValue key="Brand 0" value="Brand 0">
              <Descriptions defaultLocale="en">
                <Description locale="en">Brand 0</Description>
                <Description locale="sv">Märke 0</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="Brand 1" value="Brand 1">
              <Descriptions defaultLocale="en">
                <Description locale="en">Brand 1</Description>
                <Description locale="sv">Märke 1</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="Brand 2" value="Brand 2">
              <Descriptions defaultLocale="en">
                <Description locale="en">Brand 2</Description>
                <Description locale="sv">Märke 2</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="Brand 3" value="Brand 3">
              <Descriptions defaultLocale="en">
                <Description locale="en">Brand 3</Description>
                <Description locale="sv">Märke 3</Description>
              </Descriptions>
            </SimpleValue>
          </Values>
        </Filter>
        <Filter field="color">
          <Descriptions defaultLocale="en">
            <Description locale="en">Color</Description>
            <Description locale="sv">Färg</Description>
          </Descriptions>
          <Values>
            <SimpleValue key="black" value="black">
              <Descriptions defaultLocale="en">
                <Description locale="en">Black</Description>
                <Description locale="sv">Svart</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="white" value="white">
              <Descriptions defaultLocale="en">
                <Description locale="en">White</Description>
                <Description locale="sv">Vit</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="red" value="red">
              <Descriptions defaultLocale="en">
                <Description locale="en">Red</Description>
                <Description locale="sv">Röd</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="blue" value="blue">
              <Descriptions defaultLocale="en">
                <Description locale="en">Blue</Description>
                <Description locale="sv">Blå</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="multi" value="multi">
              <Descriptions defaultLocale="en">
                <Description locale="en">Multi</Description>
                <Description locale="sv">Multi</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="brown" value="brown">
              <Descriptions defaultLocale="en">
                <Description locale="en">Brown</Description>
                <Description locale="sv">Brun</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="navy" value="navy">
              <Descriptions defaultLocale="en">
                <Description locale="en">Navy</Description>
                <Description locale="sv">Marin</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="yellow" value="yellow">
              <Descriptions defaultLocale="en">
                <Description locale="en">Yellow</Description>
                <Description locale="sv">Gul</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="green" value="green">
              <Descriptions defaultLocale="en">
                <Description locale="en">Green</Description>
                <Description locale="sv">Grön</Description>
              </Descriptions>
            </SimpleValue>
          </Values>
        </Filter>
        <Filter field="size">
          <Descriptions defaultLocale="en">
            <Description locale="en">Size</Description>
            <Description locale="sv">Storlek</Description>
          </Descriptions>
          <Values>
            <SimpleValue key="s" value="s">
              <Descriptions defaultLocale="en">
                <Description locale="en">S</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="m" value="m">
              <Descriptions defaultLocale="en">
                <Description locale="en">M</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="l" value="l">
              <Descriptions defaultLocale="en">
                <Description locale="en">L</Description>
              </Descriptions>
            </SimpleValue>
          </Values>
        </Filter>
        <Filter field="top_category_name">
          <Descriptions defaultLocale="en">
            <Description locale="en">Top category</Description>
            <Description locale="sv">Toppkategori</Description>
          </Descriptions>
          <Values>
            <SimpleValue key="Mens" value="Mens">
              <Descriptions defaultLocale="en">
                <Description locale="en">Mens</Description>
                <Description locale="sv">Män</Description>
              </Descriptions>
            </SimpleValue>
            <SimpleValue key="Womens" value="Womens">
              <Descriptions defaultLocale="en">
                <Description locale="en">Womens</Description>
                <Description locale="sv">Kvinnor</Description>
              </Descriptions>
            </SimpleValue>
          </Values>
        </Filter>
      </SearchFilters>
    </SearchConfig>

Related blog post: Configurable Optimizely Find Facets