removedInput schema / $defs
Removed value: -{
- "BinaryQuantization": {
- "additionalProperties": false,
- "properties": {
- "binary": {
- "$ref": "#/$defs/BinaryQuantizationConfig",
- "description": ""
- }
- },
- "required": [
- "binary"
- ],
- "title": "BinaryQuantization",
- "type": "object"
- },
- "BinaryQuantizationConfig": {
- "additionalProperties": false,
- "properties": {
- "always_ram": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Deprecated: use `memory` instead.",
- "title": "Always Ram"
- },
- "encoding": {
- "anyOf": [
- {
- "$ref": "#/$defs/BinaryQuantizationEncoding"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": ""
- },
- "memory": {
- "anyOf": [
- {
- "$ref": "#/$defs/Memory"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Memory placement of quantized vectors. Overrides the deprecated `always_ram` flag if both are set. Default: follow the memory placement of the original vector storage."
- },
- "query_encoding": {
- "anyOf": [
- {
- "$ref": "#/$defs/BinaryQuantizationQueryEncoding"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Asymmetric quantization configuration allows a query to have different quantization than stored vectors. It can increase the accuracy of search at the cost of performance."
- }
- },
- "title": "BinaryQuantizationConfig",
- "type": "object"
- },
- "BinaryQuantizationEncoding": {
- "enum": [
- "one_bit",
- "two_bits",
- "one_and_half_bits"
- ],
- "title": "BinaryQuantizationEncoding",
- "type": "string"
- },
- "BinaryQuantizationQueryEncoding": {
- "enum": [
- "default",
- "binary",
- "scalar4bits",
- "scalar8bits"
- ],
- "title": "BinaryQuantizationQueryEncoding",
- "type": "string"
- },
- "CompressionRatio": {
- "enum": [
- "x4",
- "x8",
- "x16",
- "x32",
- "x64"
- ],
- "title": "CompressionRatio",
- "type": "string"
- },
- "Datatype": {
- "enum": [
- "float32",
- "uint8",
- "float16",
- "turbo4"
- ],
- "title": "Datatype",
- "type": "string"
- },
- "Distance": {
- "description": "Type of internal tags, build from payload Distance function types used to compare vectors",
- "enum": [
- "Cosine",
- "Euclid",
- "Dot",
- "Manhattan"
- ],
- "title": "Distance",
- "type": "string"
- },
- "HnswConfigDiff": {
- "additionalProperties": false,
- "properties": {
- "ef_construct": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build the index.",
- "title": "Ef Construct"
- },
- "full_scan_threshold": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "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",
- "title": "Full Scan Threshold"
- },
- "inline_storage": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "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.",
- "title": "Inline Storage"
- },
- "m": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Number of edges per node in the index graph. Larger the value - more accurate the search, more space required.",
- "title": "M"
- },
- "max_indexing_threads": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "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.",
- "title": "Max Indexing Threads"
- },
- "memory": {
- "anyOf": [
- {
- "$ref": "#/$defs/Memory"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Memory placement of the HNSW graph. Overrides the deprecated `on_disk` flag if both are set. Default: `cached` (`cold` if `on_disk` is set to true)."
- },
- "on_disk": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Deprecated: use `memory` instead. Store HNSW index on disk. If set to false, the index will be stored in RAM. Default: false",
- "title": "On Disk"
- },
- "payload_m": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Custom M param for additional payload-aware HNSW links. If not set, default M will be used.",
- "title": "Payload M"
- }
- },
- "title": "HnswConfigDiff",
- "type": "object"
- },
- "Memory": {
- "description": "Memory placement of a component's data. Data is always persisted on disk regardless of this setting; it only controls how the data is held in RAM. Options: * `Cold` - Data is not pre-loaded from disk to RAM. Preferred for rarely queried components or components larger than RAM size. First request might be slow, but data is cached with usage. * `Cached` - Data is pre-loaded into disk-cache RAM on start. First request is fast, but data may be evicted if there is not enough memory and some other component's data is used more frequently. * `Pinned` - Data is loaded in RAM and never evicted. First request is fast, but the component must fit in RAM at all times. Recommended for frequently queried small components like quantized vectors or primary indexes.",
- "enum": [
- "cold",
- "cached",
- "pinned"
- ],
- "title": "Memory",
- "type": "string"
- },
- "Modifier": {
- "description": "If used, include weight modification, which will be applied to sparse vectors at query time: None - no modification (default) Idf - inverse document frequency, based on statistics of the collection",
- "enum": [
- "none",
- "idf"
- ],
- "title": "Modifier",
- "type": "string"
- },
- "MultiVectorComparator": {
- "enum": [
- "max_sim"
- ],
- "title": "MultiVectorComparator",
- "type": "string"
- },
- "MultiVectorConfig": {
- "additionalProperties": false,
- "properties": {
- "comparator": {
- "$ref": "#/$defs/MultiVectorComparator",
- "description": ""
- }
- },
- "required": [
- "comparator"
- ],
- "title": "MultiVectorConfig",
- "type": "object"
- },
- "ProductQuantization": {
- "additionalProperties": false,
- "properties": {
- "product": {
- "$ref": "#/$defs/ProductQuantizationConfig",
- "description": ""
- }
- },
- "required": [
- "product"
- ],
- "title": "ProductQuantization",
- "type": "object"
- },
- "ProductQuantizationConfig": {
- "additionalProperties": false,
- "properties": {
- "always_ram": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Deprecated: use `memory` instead.",
- "title": "Always Ram"
- },
- "compression": {
- "$ref": "#/$defs/CompressionRatio",
- "description": ""
- },
- "memory": {
- "anyOf": [
- {
- "$ref": "#/$defs/Memory"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Memory placement of quantized vectors. Overrides the deprecated `always_ram` flag if both are set. Default: follow the memory placement of the original vector storage."
- }
- },
- "required": [
- "compression"
- ],
- "title": "ProductQuantizationConfig",
- "type": "object"
- },
- "ScalarQuantization": {
- "additionalProperties": false,
- "properties": {
- "scalar": {
- "$ref": "#/$defs/ScalarQuantizationConfig",
- "description": ""
- }
- },
- "required": [
- "scalar"
- ],
- "title": "ScalarQuantization",
- "type": "object"
- },
- "ScalarQuantizationConfig": {
- "additionalProperties": false,
- "properties": {
- "always_ram": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Deprecated: use `memory` instead. If true - quantized vectors always will be stored in RAM, ignoring the config of main storage",
- "title": "Always Ram"
- },
- "memory": {
- "anyOf": [
- {
- "$ref": "#/$defs/Memory"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Memory placement of quantized vectors. Overrides the deprecated `always_ram` flag if both are set. Default: follow the memory placement of the original vector storage."
- },
- "quantile": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Quantile for quantization. Expected value range in [0.5, 1.0]. If not set - use the whole range of values",
- "title": "Quantile"
- },
- "type": {
- "$ref": "#/$defs/ScalarType",
- "description": ""
- }
- },
- "required": [
- "type"
- ],
- "title": "ScalarQuantizationConfig",
- "type": "object"
- },
- "ScalarType": {
- "enum": [
- "int8"
- ],
- "title": "ScalarType",
- "type": "string"
- },
- "SparseIndexParams": {
- "additionalProperties": false,
- "description": "Configuration for sparse inverted index.",
- "properties": {
- "datatype": {
- "anyOf": [
- {
- "$ref": "#/$defs/Datatype"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Defines which datatype should be used for the index. Choosing different datatypes allows to optimize memory usage and performance vs accuracy. - For `float32` datatype - vectors are stored as single-precision floating point numbers, 4 bytes. - For `float16` datatype - vectors are stored as half-precision floating point numbers, 2 bytes. - For `uint8` datatype - vectors are quantized to unsigned 8-bit integers, 1 byte. Quantization to fit byte range `[0, 255]` happens during indexing automatically, so the actual vector data does not need to conform to this range."
- },
- "full_scan_threshold": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "We prefer a full scan search upto (excluding) this number of vectors. Note: this is number of vectors, not KiloBytes.",
- "title": "Full Scan Threshold"
- },
- "memory": {
- "anyOf": [
- {
- "$ref": "#/$defs/Memory"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Memory placement of the index. Overrides the deprecated `on_disk` flag if both are set. Default: `pinned` (`cold` if `on_disk` is set to true)."
- },
- "on_disk": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Deprecated: use `memory` instead. Store index on disk. If set to false, the index will be stored in RAM. Default: false",
- "title": "On Disk"
- }
- },
- "title": "SparseIndexParams",
- "type": "object"
- },
- "SparseVectorParams": {
- "additionalProperties": false,
- "description": "Params of single sparse vector data storage",
- "properties": {
- "index": {
- "anyOf": [
- {
- "$ref": "#/$defs/SparseIndexParams"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Custom params for index. If none - values from collection configuration are used."
- },
- "modifier": {
- "anyOf": [
- {
- "$ref": "#/$defs/Modifier"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Configures addition value modifications for sparse vectors. Default: none"
- }
- },
- "title": "SparseVectorParams",
- "type": "object"
- },
- "StrictModeConfig": {
- "additionalProperties": false,
- "properties": {
- "condition_max_size": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max size of a condition, eg. items in `MatchAny`.",
- "title": "Condition Max Size"
- },
- "enabled": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Whether strict mode is enabled for a collection or not.",
- "title": "Enabled"
- },
- "filter_max_conditions": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max conditions a filter can have.",
- "title": "Filter Max Conditions"
- },
- "max_collection_payload_size_bytes": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max size of a collections payload storage in bytes",
- "title": "Max Collection Payload Size Bytes"
- },
- "max_collection_vector_size_bytes": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max size of a collections vector storage in bytes, ignoring replicas.",
- "title": "Max Collection Vector Size Bytes"
- },
- "max_payload_index_count": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max number of payload indexes in a collection",
- "title": "Max Payload Index Count"
- },
- "max_points_count": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max number of points estimated in a collection",
- "title": "Max Points Count"
- },
- "max_query_limit": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max allowed `limit` parameter for all APIs that don't have their own max limit.",
- "title": "Max Query Limit"
- },
- "max_resident_memory_percent": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Deprecated: use the node-wide quota config (`PUT /quotas`) instead, which caps the same resource for every collection. Scheduled for removal in 1.21. Reject memory-consuming update operations (e.g. upsert, set payload) when the process resident memory exceeds this percentage of total system memory (or cgroup limit). Value in [1, 100]. Memory is a node-wide resource, so this only tightens the quota for one collection; it cannot lift it. Delete operations are not affected, so callers can still free memory.",
- "title": "Max Resident Memory Percent"
- },
- "max_timeout": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max allowed `timeout` parameter.",
- "title": "Max Timeout"
- },
- "multivector_config": {
- "anyOf": [
- {
- "additionalProperties": {
- "$ref": "#/$defs/StrictModeMultivector"
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Multivector strict mode configuration",
- "title": "Multivector Config"
- },
- "read_rate_limit": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max number of read operations per minute per replica",
- "title": "Read Rate Limit"
- },
- "search_allow_exact": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Whether exact search is allowed.",
- "title": "Search Allow Exact"
- },
- "search_max_batchsize": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max batchsize when searching",
- "title": "Search Max Batchsize"
- },
- "search_max_hnsw_ef": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max HNSW ef value allowed in search parameters.",
- "title": "Search Max Hnsw Ef"
- },
- "search_max_oversampling": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max oversampling value allowed in search.",
- "title": "Search Max Oversampling"
- },
- "sparse_config": {
- "anyOf": [
- {
- "additionalProperties": {
- "$ref": "#/$defs/StrictModeSparse"
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Sparse vector strict mode configuration",
- "title": "Sparse Config"
- },
- "unindexed_filtering_retrieve": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Allow usage of unindexed fields in retrieval based (e.g. search) filters.",
- "title": "Unindexed Filtering Retrieve"
- },
- "unindexed_filtering_update": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Allow usage of unindexed fields in filtered updates (e.g. delete by payload).",
- "title": "Unindexed Filtering Update"
- },
- "upsert_max_batchsize": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max batchsize when upserting",
- "title": "Upsert Max Batchsize"
- },
- "write_rate_limit": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max number of write operations per minute per replica",
- "title": "Write Rate Limit"
- }
- },
- "title": "StrictModeConfig",
- "type": "object"
- },
- "StrictModeMultivector": {
- "additionalProperties": false,
- "properties": {
- "max_vectors": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max number of vectors in a multivector",
- "title": "Max Vectors"
- }
- },
- "title": "StrictModeMultivector",
- "type": "object"
- },
- "StrictModeSparse": {
- "additionalProperties": false,
- "properties": {
- "max_length": {
- "anyOf": [
- {
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Max length of sparse vector",
- "title": "Max Length"
- }
- },
- "title": "StrictModeSparse",
- "type": "object"
- },
- "TurboQuantBitSize": {
- "enum": [
- "bits1",
- "bits1_5",
- "bits2",
- "bits4"
- ],
- "title": "TurboQuantBitSize",
- "type": "string"
- },
- "TurboQuantQuantizationConfig": {
- "additionalProperties": false,
- "properties": {
- "always_ram": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Deprecated: use `memory` instead.",
- "title": "Always Ram"
- },
- "bits": {
- "anyOf": [
- {
- "$ref": "#/$defs/TurboQuantBitSize"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": ""
- },
- "memory": {
- "anyOf": [
- {
- "$ref": "#/$defs/Memory"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Memory placement of quantized vectors. Overrides the deprecated `always_ram` flag if both are set. Default: follow the memory placement of the original vector storage."
- }
- },
- "title": "TurboQuantQuantizationConfig",
- "type": "object"
- },
- "TurboQuantization": {
- "additionalProperties": false,
- "properties": {
- "turbo": {
- "$ref": "#/$defs/TurboQuantQuantizationConfig",
- "description": ""
- }
- },
- "required": [
- "turbo"
- ],
- "title": "TurboQuantization",
- "type": "object"
- },
- "VectorParams": {
- "additionalProperties": false,
- "description": "Params of single vector data storage",
- "properties": {
- "datatype": {
- "anyOf": [
- {
- "$ref": "#/$defs/Datatype"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Defines which datatype should be used to represent vectors in the storage. Choosing different datatypes allows to optimize memory usage and performance vs accuracy. - For `float32` datatype - vectors are stored as single-precision floating point numbers, 4 bytes. - For `float16` datatype - vectors are stored as half-precision floating point numbers, 2 bytes. - For `uint8` datatype - vectors are stored as unsigned 8-bit integers, 1 byte. It expects vector elements to be in range `[0, 255]`. - For `turbo4` datatype - vectors are quantized to 4 bits per element using the TurboQuant algorithm."
- },
- "distance": {
- "$ref": "#/$defs/Distance",
- "description": "Params of single vector data storage"
- },
- "hnsw_config": {
- "anyOf": [
- {
- "$ref": "#/$defs/HnswConfigDiff"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Custom params for HNSW index. If none - values from collection configuration are used."
- },
- "memory": {
- "anyOf": [
- {
- "$ref": "#/$defs/Memory"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Memory placement of the original vector storage. Overrides the deprecated `on_disk` flag if both are set. `pinned` is not supported for dense vector storage. Default: `cached` (`cold` if `on_disk` is set to true)."
- },
- "multivector_config": {
- "anyOf": [
- {
- "$ref": "#/$defs/MultiVectorConfig"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Params of single vector data storage"
- },
- "on_disk": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Deprecated: use `memory` instead. If true, vectors are served from disk, improving RAM usage at the cost of latency Default: false",
- "title": "On Disk"
- },
- "quantization_config": {
- "anyOf": [
- {
- "$ref": "#/$defs/ScalarQuantization"
- },
- {
- "$ref": "#/$defs/ProductQuantization"
- },
- {
- "$ref": "#/$defs/BinaryQuantization"
- },
- {
- "$ref": "#/$defs/TurboQuantization"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "description": "Custom params for quantization. If none - values from collection configuration are used.",
- "title": "Quantization Config"
- },
- "size": {
- "description": "Size of a vectors used",
- "title": "Size",
- "type": "integer"
- }
- },
- "required": [
- "size",
- "distance"
- ],
- "title": "VectorParams",
- "type": "object"
- }
-}
changedInput schema / properties / vectors / anyOf
Previous value: -[
- {
- "additionalProperties": {
- "$ref": "#/$defs/VectorParams"
- },
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "additionalProperties": {
+ "additionalProperties": false,
+ "properties": {
+ "datatype": {
+ "anyOf": [
+ {
+ "enum": [
+ "float32",
+ "uint8",
+ "float16",
+ "turbo4"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "distance": {
+ "enum": [
+ "Cosine",
+ "Euclid",
+ "Dot",
+ "Manhattan"
+ ],
+ "type": "string"
+ },
+ "hnsw_config": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "ef_construct": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "full_scan_threshold": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "inline_storage": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "m": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "max_indexing_threads": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "memory": {
+ "anyOf": [
+ {
+ "enum": [
+ "cold",
+ "cached",
+ "pinned"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_disk": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "payload_m": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "memory": {
+ "anyOf": [
+ {
+ "enum": [
+ "cold",
+ "cached",
+ "pinned"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "multivector_config": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "comparator": {
+ "enum": [
+ "max_sim"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "comparator"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_disk": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "quantization_config": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "scalar": {
+ "additionalProperties": false,
+ "properties": {
+ "always_ram": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "memory": {
+ "anyOf": [
+ {
+ "enum": [
+ "cold",
+ "cached",
+ "pinned"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "quantile": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "enum": [
+ "int8"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "scalar"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "product": {
+ "additionalProperties": false,
+ "properties": {
+ "always_ram": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "compression": {
+ "enum": [
+ "x4",
+ "x8",
+ "x16",
+ "x32",
+ "x64"
+ ],
+ "type": "string"
+ },
+ "memory": {
+ "anyOf": [
+ {
+ "enum": [
+ "cold",
+ "cached",
+ "pinned"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "compression"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "product"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "binary": {
+ "additionalProperties": false,
+ "properties": {
+ "always_ram": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "encoding": {
+ "anyOf": [
+ {
+ "enum": [
+ "one_bit",
+ "two_bits",
+ "one_and_half_bits"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "memory": {
+ "anyOf": [
+ {
+ "enum": [
+ "cold",
+ "cached",
+ "pinned"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "query_encoding": {
+ "anyOf": [
+ {
+ "enum": [
+ "default",
+ "binary",
+ "scalar4bits",
+ "scalar8bits"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "binary"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "turbo": {
+ "additionalProperties": false,
+ "properties": {
+ "always_ram": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "bits": {
+ "anyOf": [
+ {
+ "enum": [
+ "bits1",
+ "bits1_5",
+ "bits2",
+ "bits4"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "memory": {
+ "anyOf": [
+ {
+ "enum": [
+ "cold",
+ "cached",
+ "pinned"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "turbo"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "size": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "size",
+ "distance"
+ ],
+ "type": "object"
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+]