Qdrant · Schema

HnswConfigDiff

AIArtificial IntelligenceVector Databases

Properties

Name Type Description
m integer Number of edges per node in the index graph. Larger the value - more accurate the search, more space required.
ef_construct integer Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build the index.
full_scan_threshold integer Minimal size threshold (in KiloBytes) below which full-scan is preferred over HNSW search. This measures the total size of vectors being queried against. When the maximum estimated amount of points th
max_indexing_threads integer Number of parallel threads used for background index building. If 0 - automatically select from 8 to 16. Best to keep between 8 and 16 to prevent likelihood of building broken/inefficient HNSW graphs.
on_disk boolean Store HNSW index on disk. If set to false, the index will be stored in RAM. Default: false
payload_m integer Custom M param for additional payload-aware HNSW links. If not set, default M will be used.
inline_storage boolean Store copies of original and quantized vectors within the HNSW index file. Default: false. Enabling this option will trade the search speed for disk usage by reducing amount of random seeks during the
View JSON Schema on GitHub

JSON Schema

qdrant-hnswconfigdiff-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/HnswConfigDiff",
  "title": "HnswConfigDiff",
  "type": "object",
  "properties": {
    "m": {
      "description": "Number of edges per node in the index graph. Larger the value - more accurate the search, more space required.",
      "type": "integer",
      "format": "uint",
      "minimum": 0,
      "nullable": true
    },
    "ef_construct": {
      "description": "Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build the index.",
      "type": "integer",
      "format": "uint",
      "minimum": 4,
      "nullable": true
    },
    "full_scan_threshold": {
      "description": "Minimal size threshold (in KiloBytes) below which full-scan is preferred over HNSW search. This measures the total size of vectors being queried against. When the maximum estimated amount of points that a condition satisfies is smaller than `full_scan_threshold_kb`, the query planner will use full-scan search instead of HNSW index traversal for better performance. Note: 1Kb = 1 vector of size 256",
      "type": "integer",
      "format": "uint",
      "minimum": 10,
      "nullable": true
    },
    "max_indexing_threads": {
      "description": "Number of parallel threads used for background index building. If 0 - automatically select from 8 to 16. Best to keep between 8 and 16 to prevent likelihood of building broken/inefficient HNSW graphs. On small CPUs, less threads are used.",
      "type": "integer",
      "format": "uint",
      "minimum": 0,
      "nullable": true
    },
    "on_disk": {
      "description": "Store HNSW index on disk. If set to false, the index will be stored in RAM. Default: false",
      "type": "boolean",
      "nullable": true
    },
    "payload_m": {
      "description": "Custom M param for additional payload-aware HNSW links. If not set, default M will be used.",
      "type": "integer",
      "format": "uint",
      "minimum": 0,
      "nullable": true
    },
    "inline_storage": {
      "description": "Store copies of original and quantized vectors within the HNSW index file. Default: false. Enabling this option will trade the search speed for disk usage by reducing amount of random seeks during the search. Requires quantized vectors to be enabled. Multi-vectors are not supported.",
      "type": "boolean",
      "nullable": true
    }
  }
}