Skip to content

flat_vector_index

Category: Indexes and search
Wire type: flat_vector_index
Construction: CREATE

Index/search types provide exact, range, prefix, full-text, vector, and secondary lookup paths.

Use the top-level CREATE command to initialize this structured value. The example shows its construction options.

Terminal window
amaquet-cli -uri amaquet://127.0.0.1:13378 CREATE '{"key":"example:flat_vector_index","type":"flat_vector_index","options":{"dim":3,"metric":"cosine"}}'

dim is required and must be positive. metric defaults to cosine; portable values are cosine, dot, euclidean, and manhattan, with unsupported strings rejected when distance calculation is first required.

ADD, REMOVE, SEARCH, LEN.

See the complete operation contract for exact arguments, defaults, results, and whether a listed GET is the top-level key command or a type-specific OP. It also identifies read-only operations and documents validation, lazy maintenance, and key-version behavior.

The following examples use the public amaquet-cli JSON command format. Replace example:flat_vector_index with the key used by your application.

Use the payload below to initialize this type before issuing reads or type-specific operations.

This payload initializes the value and must complete before its type-specific operations are used.

{
"key": "example:flat_vector_index",
"type": "flat_vector_index",
"options": {
"dim": 3,
"metric": "cosine"
}
}

Each request uses the OP envelope. The response is the type-specific value described in the complete operation contract.

Accepts id, vector, optional metadata and returns true; vector dimension enforced; replaces same ID.

{
"key": "example:flat_vector_index",
"operation": "ADD",
"args": {
"id": "v1",
"vector": [
1,
0,
0
],
"metadata": {}
}
}

Accepts vector, optional k:10 and returns exact full-scan results sorted by ascending distance.

{
"key": "example:flat_vector_index",
"operation": "SEARCH",
"args": {
"vector": [
1,
0,
0
],
"k": 1
}
}

Accepts id and returns whether the vector existed.

{
"key": "example:flat_vector_index",
"operation": "REMOVE",
"args": {
"id": "v1"
}
}

Takes no arguments and returns the item count.

{
"key": "example:flat_vector_index",
"operation": "LEN",
"args": {}
}

GET reads the current value without changing it:

{
"key": "example:flat_vector_index"
}

These commands apply to the key regardless of its registered type:

  • TYPE: {"key":"example:flat_vector_index"} — returns the wire type.
  • EXISTS: {"key":"example:flat_vector_index"} — reports whether the key exists.
  • EXPIRE: {"key":"example:flat_vector_index","ttl_ms":5000} — assigns a five-second TTL.
  • TTL: {"key":"example:flat_vector_index"} — returns the remaining TTL in milliseconds.
  • PERSIST: {"key":"example:flat_vector_index"} — removes the TTL.
  • DEL: {"keys":["example:flat_vector_index"]} — deletes the key.

For defaults, validation, result shapes, and persistence classification, see the complete operation contract.

The key participates in TYPE, EXISTS, TTL, EXPIRE, PERSIST, and DEL. Top-level GET returns the type’s direct public value or a synchronized snapshot.