v1

latestOpenAPI 3.0.3BSL2026-07-17133415718.8 KB
Chunk Group

Autocomplete Search Over Groups

This route provides the primary autocomplete functionality for the API. This prioritize prefix matching with semantic or full-text search.

post/api/chunk_group/group_oriented_autocomplete

Headers

TR-Datasetstring uuid required

The dataset id or tracking_id to use for the request. We assume you intend to use an id if the value is a valid uuid.

X-API-Version'V1' | 'V2'

The API version to use for this request. Defaults to V2 for orgs created after July 12, 2024 and V1 otherwise.

Request body

extend_resultsboolean nullable

If specified to true, this will extend the search results to include non-exact prefix matches of the same search_type such that a full page_size of results are returned. Default is false.

group_sizeinteger nullable

Group_size is the number of chunks to fetch for each group. The default is 3. If a group has less than group_size chunks, all chunks will be returned. If this is set to a large number, we recommend setting slim_chunks to true to avoid returning the content and chunk_html of the chunks so as to lower the amount of time required for content download and serialization.

{"stackTrail":"components:schemas:AutocompleteSearchOverGroupsReqPayload:properties:metadata","oasType":"schema","type":"unknown","description":"Metadata is any metadata you want to associate w/ the event that is created from this request","nullable":true}
page_sizeinteger nullable

Page size is the number of chunks to fetch. This can be used to fetch more than 10 chunks at a time.

remove_stop_wordsboolean nullable

If true, stop words (specified in server/src/stop-words.txt in the git repo) will be removed. Queries that are entirely stop words will be preserved.

score_thresholdnumber float nullable

Set score_threshold to a float to filter out chunks with a score below the threshold. This threshold applies before weight and bias modifications. If not specified, this defaults to 0.0.

search_type'fulltext' | 'semantic' | 'hybrid' | 'bm25' required
slim_chunksboolean nullable

Set slim_chunks to true to avoid returning the content and chunk_html of the chunks. This is useful for when you want to reduce amount of data over the wire for latency improvement (typically 10-50ms). Default is false.

use_quote_negated_termsboolean nullable

If true, quoted and - prefixed words will be parsed from the queries and used as required and negated words respectively. Default is false.

user_idstring nullable

User ID is the id of the user who is making the request. This is used to track user interactions with the search results.

Example request

{
  "filters": {
    "must": [
      {
        "field": "metadata.key2",
        "match": [
          "value3",
          "value4"
        ],
        "range": {
          "gt": 0,
          "gte": 0,
          "lt": 1,
          "lte": 1
        }
      }
    ],
    "must_not": [
      {
        "field": "metadata.key3",
        "match": [
          "value5",
          "value6"
        ],
        "range": {
          "gt": 0,
          "gte": 0,
          "lt": 1,
          "lte": 1
        }
      }
    ],
    "should": [
      {
        "field": "metadata.key1",
        "match": [
          "value1",
          "value2"
        ],
        "range": {
          "gt": 0,
          "gte": 0,
          "lt": 1,
          "lte": 1
        }
      }
    ]
  },
  "highlight_delimiters": [
    "?",
    ",",
    ".",
    "!"
  ],
  "highlight_results": true,
  "page": 1,
  "page_size": 10,
  "query": "Some search query",
  "recency_bias": 1,
  "score_threshold": 0.5,
  "search_type": "semantic",
  "use_weights": true
}

Response

Groups with embedding vectors which are similar to those in the request body

corrected_querystring nullable
idstring uuid required
total_pagesinteger required

Example response

{
  "results": [
    {
      "chunks": [
        {
          "chunk": {
            "chunk_html": "<p>Some HTML content</p>",
            "content": "Some content",
            "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
            "link": "https://example.com",
            "metadata": {
              "key1": "value1",
              "key2": "value2"
            },
            "time_stamp": "2021-01-01 00:00:00.000",
            "weight": 0.5
          },
          "highlights": [
            "highlight is two tokens: high, light",
            "whereas hello is only one token: hello"
          ],
          "score": 0.5
        }
      ],
      "group": {
        "created_at": "2021-01-01 00:00:00.000",
        "dataset_id": "e3e3e3e3-e3e3-e3e3-e3e3-e3e3e3e3e3e3",
        "description": "All versions and colorways of the oversized t-shirt",
        "metadata": {
          "foo": "bar"
        },
        "name": "Versions of Oversized T-Shirt",
        "tag_set": [
          "tshirt",
          "oversized",
          "clothing"
        ],
        "tracking_id": "SNOVERSIZEDTSHIRT",
        "updated_at": "2021-01-01 00:00:00.000"
      }
    }
  ]
}