HybridSearchRequest

  • The search query the user has entered.

  • The anonymous visitor who made this query. Used for personalization when there is no user_id.

  • Controls the AI answer pipeline:

    • true — always generate an answer
    • false — search results only, no answer
    • "AUTO" — let Miso decide per query (recommended; generates an answer only when the query looks like a question)
    • Controls the AI answer pipeline:

      • true — always generate an answer
      • false — search results only, no answer
      • "AUTO" — let Miso decide per query (recommended; generates an answer only when the query looks like a question)
  • Fields to compute facet counts for (e.g. categories, tags, custom_attributes.director). Counts are returned in data.facet_counts — use them to build filter UIs.

  • Fields to return for each product in data.products. Any uploaded field is allowed, including custom_attributes.*.

  • A query in Elasticsearch query-string syntax (Lucene) that restricts the candidate products without affecting ranking — use it to scope results (e.g. by section or subscription tier).

    Examples:

    • "section:\"markets\"" — only the markets section
    • "tier:(\"premium\" OR \"pro\")" — only premium/pro content
    • "rating:[4 TO *]" — numeric range, rating ≥ 4
    • "custom_attributes.designer:\"Calvin Klein\"" — filter on a custom attribute
  • Arbitrary metadata to store with the request (e.g. {"site": "markets"}).

  • Sort order of results: relevance (default), published_at (newest first), or -published_at (oldest first). A record with no published_at sorts by updated_at instead. You can also send a list of order-by objects to sort on your own numeric or boolean fields.

  • Number of search results to return in data.products.

  • Fields to return for each answer source. Same field rules as fl.

  • Offset of the first result — use with rows for pagination.

  • When enabled, query words are reduced to their root form (e.g. "running" → "run"), improving recall by matching inflected forms.

  • The hash of user_id (or anonymous_id) encrypted with your Secret API Key. Send this when calling from the browser with a Publishable API Key to prevent spoofing.

  • The signed-in user who made the query. For an anonymous visitor, use anonymous_id instead. Used for personalization.

  • The type/segment of user who made the query. Used for rate limiting and segment-level personalization.