Skip to content

Dynamic Facets

Dynamic facets automatically show the most relevant filters for each query, category, or user segment, ensuring users see the filters that matter most for their search.

Overview

Instead of showing the same facets for every search, dynamic facets adapt to show the most relevant filters based on the query, category, user context, and available products.

Dynamic Facet Strategies

Query-Based Facets

Show facets relevant to the search query:

{
  "dynamic_facet_strategy": "query_based",
  "rules": {
    "running shoes": {
      "facets": ["brand", "size", "color", "price", "gender"]
    },
    "laptops": {
      "facets": ["brand", "price", "screen_size", "ram", "storage"]
    },
    "dresses": {
      "facets": ["size", "color", "style", "price", "occasion"]
    }
  }
}

Category-Based Facets

Show facets relevant to the category:

{
  "dynamic_facet_strategy": "category_based",
  "rules": {
    "electronics": {
      "facets": ["brand", "price", "features", "warranty"]
    },
    "clothing": {
      "facets": ["size", "color", "brand", "material", "price"]
    },
    "home": {
      "facets": ["room", "style", "color", "material", "price"]
    }
  }
}

Product-Based Facets

Show facets based on products in results:

{
  "dynamic_facet_strategy": "product_based",
  "min_products_per_facet": 5,
  "max_facets": 8,
  "relevance_threshold": 0.3
}

Only show facets that have at least 5 products and meet relevance thresholds.

Facet Relevance Scoring

Score facets by relevance:

{
  "facet_relevance_scoring": {
    "factors": [
      {
        "factor": "product_count",
        "weight": 0.4
      },
      {
        "factor": "query_relevance",
        "weight": 0.3
      },
      {
        "factor": "user_preference",
        "weight": 0.2
      },
      {
        "factor": "business_priority",
        "weight": 0.1
      }
    ]
  }
}

Context-Aware Facets

Adjust facets based on user context:

{
  "context_aware_facets": {
    "mobile": {
      "max_facets": 5,
      "prioritize": ["price", "brand", "rating"]
    },
    "desktop": {
      "max_facets": 10,
      "show_all": true
    },
    "new_user": {
      "facets": ["price", "rating", "brand"],
      "simplified_labels": true
    }
  }
}

ML-Powered Facet Selection

Use machine learning to select optimal facets:

{
  "ml_facet_selection": {
    "enabled": true,
    "model": "facet_selector_v1",
    "features": [
      "query_text",
      "category",
      "product_distribution",
      "user_history",
      "facet_usage_history"
    ]
  }
}

Facet Value Filtering

Only show facet values that make sense:

{
  "facet_value_filtering": {
    "enabled": true,
    "min_products_per_value": 2,
    "hide_empty_values": true,
    "hide_single_value_facets": true
  }
}

Best Practices

  1. Start with defaults: Have sensible default facets, then customize
  2. Test relevance: Ensure dynamic facets are actually more relevant
  3. Monitor performance: Track how dynamic facets affect conversion
  4. Balance flexibility: Don't change facets too dramatically
  5. Consider context: Adjust facets for device, user type, etc.
  6. Use ML carefully: Validate ML-selected facets before deploying
  7. Maintain consistency: Keep some consistency across similar queries