Deploying Dynamic Navigation Experience

Pilot Feature

In JavaScript Search Framework interfaces containing DynamicFacet and DynamicFacetManager components, the Coveo™ Machine Learning (Coveo ML) Dynamic Navigation Experience (DNE) feature can automatically reorder facets and their values, and increase the ranking scores of query result items matching relevant field values.

This article details the required steps to deploy DNE in a Coveo Cloud platform solution.

DNE and dynamic facets are still beta features (see Dynamic Facet Limitations).

Eventually, DNE models will also be able to automatically recommend and automatically select relevant facet values.

Step 1 - Configure a DNE Model

  1. Create a DNE model.
  2. Associate the DNE model with the desired query pipeline.

Step 2 - Configure Dynamic Facets in Your Search Interface

Coveo JavaScript Search Framework 2.6063 (May 2019)

The DynamicFacet and DynamicFacetManager components, which are necessary to leverage the DNE feature in a Coveo JavaScript Search Framework interface, are still beta features.

Be sure to review the dynamic facet limitations before including those components in your search interface.

In the search interface whose queries are routed to the query pipeline associated with (or containing) the DNE model configured in step 1:

  • Replace all Facet components with DynamicFacet components.
  • Replace all FacetRange components with DynamicFacetRange components.
    • Dynamic facets do not currently support automatic range generation. Therefore, when configuring a DynamicFacetRange, you must use the ranges option to request specific facet range values .

    • You may also want to replace FacetSlider and TimespanFacet components with DynamicFacetRange components.

Embed all dynamic facets within a DynamicFacetManager component, otherwise you will not be able to leverage the DNE facet reordering feature.

To maximize the usefulness and quality of output of the DNE facet reordering feature, all relevant facets should be included and made visible in the search interface.

In a Coveo-powered eCommerce search page, the facet markup configuration currently is:

<div class="coveo-facet-column">
  <div class="CoveoFacet"
       data-title="Category"
       data-field="@prd_category"></div>
  <div class="CoveoFacet"
       data-title="Brand"
       data-field="@prd_brand"></div>
  <div class="CoveoFacet"
       data-title="Screen size"
       data-field="@prd_screen_size"></div>
  <div class="CoveoFacet"
       data-title="Wall mountable"
       data-field="@prd_wall_mountable"></div>
  <div class="CoveoFacet"
       data-title="Processor speed"
       data-field="@prd_processor_speed"></div>
  <div class="CoveoFacet"
       data-title="Resolution"
       data-field="@prd_resolution"></div>
</div>

To leverage DNE in this search interface, the following changes would have to be made:

<div class="coveo-facet-column">
  <div class="CoveoDynamicFacetManager">
    <div class="CoveoDynamicFacet"
         data-title="Category"
         data-field="@prd_category"></div>
    <div class="CoveoDynamicFacet"
         data-title="Brand"
         data-field="@prd_brand"></div>
    <div class="CoveoDynamicFacet"
         data-title="Screen size"
         data-field="@prd_screen_size"></div>
    <div class="CoveoDynamicFacet"
         data-title="Wall mountable"
         data-field="@prd_wall_mountable"></div>
    <div class="CoveoDynamicFacet"
         data-title="Processor speed"
         data-field="@prd_processor_speed"></div>
    <div class="CoveoDynamicFacet"
         data-title="Resolution"
         data-field="@prd_resolution"></div>
  </div>
</div>

See Using Dynamic Facets for examples and advanced use cases.