Grouping

Group results by values of a specified attribute

This feature is only available for the Product Suggest API

Parameters

The groupBy parameter allows to group the results by values of any single-valued facetable attribute. Each value will return a group of items containing this value.

Name

Type

Is Required ?

groupBy

GroupOptions

groupBy

Grouping options, must be a JSON object with the following properties:

PropertyTypeDescription

attribute

string

Name of the attribute used for grouping

values

list of string

List of values (of the attribute) to group by

size

integer

Size of each group. Must be between 1 and 100 (inclusive)

Notes

  • The maximum number of items returned is 100, no matter the size or number of values. For example, requesting 50 values with size 5 will return only 2 items per group (and 50 groups)

  • attribute must be a single-valued facetable attribute. Lists and sets attributes can't be used for grouping

Response

All responses from XO Search uses the same format. Check API Reference page for a more detailed description of this format.

pageAPI Reference

Usage example

  • Group results by 2 different kind: "box" and "product"

NodeJS / NPM example

import { search } from '@attraqt/search';

const query = 'T-shirt';

search.init({ token: SEARCH_API_TOKEN });

const response = await search.suggest(query, {
  groupBy: {
    attribute: 'kind',
    size: 5,
    values: ['product', 'box']
  }
});

console.log(response);

HTML example

<script type="text/javascript">
    xo.init({
        search: {
            token: 'SEARCH_API_TOKEN'
        }
    });

    xo.search.suggest('T-Shirt', {
        groupBy: {
            attribute: 'kind',
            size: 5,
            values: ['product', 'box']
        }
    }).then((response) => {
        console.log(response);
    });
</script>

Last updated