Protocol Documentation
Table of Contents
Top
collections.proto
AliasOperations
ChangeAliases
| Field |
Type |
Label |
Description |
| actions |
AliasOperations |
repeated |
List of actions |
| timeout |
uint64 |
optional |
Wait timeout for operation commit in seconds, if not specified - default value will be supplied |
CollectionConfig
CollectionDescription
| Field |
Type |
Label |
Description |
| name |
string |
|
Name of the collection |
CollectionInfo
CollectionInfo.PayloadSchemaEntry
CollectionOperationResponse
| Field |
Type |
Label |
Description |
| result |
bool |
|
if operation made changes |
| time |
double |
|
Time spent to process |
CollectionParams
| Field |
Type |
Label |
Description |
| vector_size |
uint64 |
|
Size of the vectors |
| distance |
Distance |
|
Distance function used for comparing vectors |
| shard_number |
uint32 |
|
Number of shards in collection |
| on_disk_payload |
bool |
|
If true - point's payload will not be stored in memory |
CreateAlias
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
Name of the collection |
| alias_name |
string |
|
New name of the alias |
CreateCollection
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
Name of the collection |
| vector_size |
uint64 |
|
Size of the vectors |
| distance |
Distance |
|
Distance function used for comparing vectors |
| hnsw_config |
HnswConfigDiff |
optional |
Configuration of vector index |
| wal_config |
WalConfigDiff |
optional |
Configuration of the Write-Ahead-Log |
| optimizers_config |
OptimizersConfigDiff |
optional |
Configuration of the optimizers |
| shard_number |
uint32 |
optional |
Number of shards in the collection, default = 1 |
| on_disk_payload |
bool |
optional |
If true - point's payload will not be stored in memory |
| timeout |
uint64 |
optional |
Wait timeout for operation commit in seconds, if not specified - default value will be supplied |
DeleteAlias
| Field |
Type |
Label |
Description |
| alias_name |
string |
|
Name of the alias |
DeleteCollection
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
Name of the collection |
| timeout |
uint64 |
optional |
Wait timeout for operation commit in seconds, if not specified - default value will be supplied |
GetCollectionInfoRequest
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
Name of the collection |
GetCollectionInfoResponse
HnswConfigDiff
| Field |
Type |
Label |
Description |
| m |
uint64 |
optional |
Number of edges per node in the index graph. Larger the value - more accurate the search, more space required. |
| ef_construct |
uint64 |
optional |
Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build index. |
| full_scan_threshold |
uint64 |
optional |
Minimal size (in KiloBytes) of vectors for additional payload-based indexing. If payload chunk is smaller than full_scan_threshold additional indexing won't be used - in this case full-scan search should be preferred by query planner and additional indexing is not required. Note: 1Kb = 1 vector of size 256 |
ListCollectionsRequest
ListCollectionsResponse
OptimizerStatus
OptimizersConfigDiff
| Field |
Type |
Label |
Description |
| deleted_threshold |
double |
optional |
The minimal fraction of deleted vectors in a segment, required to perform segment optimization |
| vacuum_min_vector_number |
uint64 |
optional |
The minimal number of vectors in a segment, required to perform segment optimization |
| default_segment_number |
uint64 |
optional |
Target amount of segments optimizer will try to keep. Real amount of segments may vary depending on multiple parameters: |
- Amount of stored points. - Current write RPS.
It is recommended to select default number of segments as a factor of the number of search threads, so that each segment would be handled evenly by one of the threads. |
| max_segment_size | uint64 | optional | Do not create segments larger this size (in KiloBytes). Large segments might require disproportionately long indexation times, therefore it makes sense to limit the size of segments.
If indexation speed have more priority for your - make this parameter lower. If search speed is more important - make this parameter higher. Note: 1Kb = 1 vector of size 256 |
| memmap_threshold | uint64 | optional | Maximum size (in KiloBytes) of vectors to store in-memory per segment. Segments larger than this threshold will be stored as read-only memmaped file. To enable memmap storage, lower the threshold Note: 1Kb = 1 vector of size 256 |
| indexing_threshold | uint64 | optional | Maximum size (in KiloBytes) of vectors allowed for plain index. Default value based on https://github.com/google-research/google-research/blob/master/scann/docs/algorithms.md Note: 1Kb = 1 vector of size 256 |
| flush_interval_sec | uint64 | optional | Interval between forced flushes. |
| max_optimization_threads | uint64 | optional | Max number of threads, which can be used for optimization. If 0 - NUM_CPU - 1 will be used |
PayloadSchemaInfo
RenameAlias
| Field |
Type |
Label |
Description |
| old_alias_name |
string |
|
Name of the alias to rename |
| new_alias_name |
string |
|
Name of the alias |
UpdateCollection
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
Name of the collection |
| optimizers_config |
OptimizersConfigDiff |
optional |
New configuration parameters for the collection |
| timeout |
uint64 |
optional |
Wait timeout for operation commit in seconds, if not specified - default value will be supplied |
WalConfigDiff
| Field |
Type |
Label |
Description |
| wal_capacity_mb |
uint64 |
optional |
Size of a single WAL block file |
| wal_segments_ahead |
uint64 |
optional |
Number of segments to create in advance |
CollectionStatus
| Name |
Number |
Description |
| UnknownCollectionStatus |
0 |
|
| Green |
1 |
All segments are ready |
| Yellow |
2 |
Optimization in process |
| Red |
3 |
Something went wrong |
Distance
| Name |
Number |
Description |
| UnknownDistance |
0 |
|
| Cosine |
1 |
|
| Euclid |
2 |
|
| Dot |
3 |
|
PayloadSchemaType
| Name |
Number |
Description |
| UnknownType |
0 |
|
| Keyword |
1 |
|
| Integer |
2 |
|
| Float |
3 |
|
| Geo |
4 |
|
Top
collections_service.proto
Collections
Top
json_with_int.proto
ListValue
ListValue is a wrapper around a repeated field of values.
The JSON representation for ListValue is JSON array.
| Field |
Type |
Label |
Description |
| values |
Value |
repeated |
Repeated field of dynamically typed values. |
Struct
Struct represents a structured data value, consisting of fields
which map to dynamically typed values. In some languages, Struct
might be supported by a native representation. For example, in
scripting languages like JS a struct is represented as an
object. The details of that representation are described together
with the proto support for the language.
The JSON representation for Struct is JSON object.
| Field |
Type |
Label |
Description |
| fields |
Struct.FieldsEntry |
repeated |
Unordered map of dynamically typed values. |
Struct.FieldsEntry
Value
Value represents a dynamically typed value which can be either
null, a number, a string, a boolean, a recursive struct value, or a
list of values. A producer of value is expected to set one of that
variants, absence of any variant indicates an error.
The JSON representation for Value is JSON value.
| Field |
Type |
Label |
Description |
| null_value |
NullValue |
|
Represents a null value. |
| double_value |
double |
|
Represents a double value. |
| integer_value |
int64 |
|
Represents an integer value |
| string_value |
string |
|
Represents a string value. |
| bool_value |
bool |
|
Represents a boolean value. |
| struct_value |
Struct |
|
Represents a structured value. |
| list_value |
ListValue |
|
Represents a repeated Value. |
NullValue
NullValue is a singleton enumeration to represent the null value for the
Value type union.
The JSON representation for NullValue is JSON null.
| Name |
Number |
Description |
| NULL_VALUE |
0 |
Null value. |
Top
points.proto
ClearPayloadPoints
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
name of the collection |
| wait |
bool |
optional |
Wait until the changes have been applied? |
| points |
PointsSelector |
|
Affected points |
Condition
CreateFieldIndexCollection
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
name of the collection |
| wait |
bool |
optional |
Wait until the changes have been applied? |
| field_name |
string |
|
Field name to index |
| field_type |
FieldType |
optional |
Field type. |
DeleteFieldIndexCollection
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
name of the collection |
| wait |
bool |
optional |
Wait until the changes have been applied? |
| field_name |
string |
|
Field name to delete |
DeletePayloadPoints
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
name of the collection |
| wait |
bool |
optional |
Wait until the changes have been applied? |
| keys |
string |
repeated |
List of keys to delete |
| points |
PointId |
repeated |
Affected points |
DeletePoints
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
name of the collection |
| wait |
bool |
optional |
Wait until the changes have been applied? |
| points |
PointsSelector |
|
Affected points |
FieldCondition
| Field |
Type |
Label |
Description |
| key |
string |
|
|
| match |
Match |
|
Check if point has field with a given value |
| range |
Range |
|
Check if points value lies in a given range |
| geo_bounding_box |
GeoBoundingBox |
|
Check if points geo location lies in a given area |
| geo_radius |
GeoRadius |
|
Check if geo point is within a given radius |
| values_count |
ValuesCount |
|
Check number of values for a specific field |
Filter
| Field |
Type |
Label |
Description |
| should |
Condition |
repeated |
At least one of those conditions should match |
| must |
Condition |
repeated |
All conditions must match |
| must_not |
Condition |
repeated |
All conditions must NOT match |
GeoBoundingBox
| Field |
Type |
Label |
Description |
| top_left |
GeoPoint |
|
north-west corner |
| bottom_right |
GeoPoint |
|
south-east corner |
GeoPoint
GeoRadius
| Field |
Type |
Label |
Description |
| center |
GeoPoint |
|
Center of the circle |
| radius |
float |
|
In meters |
GetPoints
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
name of the collection |
| ids |
PointId |
repeated |
List of points to retrieve |
| with_vector |
bool |
optional |
Return point vector with the result. |
| with_payload |
WithPayloadSelector |
|
Options for specifying which payload to include or not |
GetResponse
HasIdCondition
| Field |
Type |
Label |
Description |
| has_id |
PointId |
repeated |
|
IsEmptyCondition
| Field |
Type |
Label |
Description |
| key |
string |
|
|
Match
| Field |
Type |
Label |
Description |
| keyword |
string |
|
Match string keyword |
| integer |
int64 |
|
Match integer |
| boolean |
bool |
|
Match boolean |
PayloadExcludeSelector
| Field |
Type |
Label |
Description |
| fields |
string |
repeated |
List of payload keys to exclude from the result |
PayloadIncludeSelector
| Field |
Type |
Label |
Description |
| fields |
string |
repeated |
List of payload keys to include into result |
PointId
| Field |
Type |
Label |
Description |
| num |
uint64 |
|
Numerical ID of the point |
| uuid |
string |
|
UUID |
PointStruct
PointStruct.PayloadEntry
PointsIdsList
| Field |
Type |
Label |
Description |
| ids |
PointId |
repeated |
|
PointsOperationResponse
PointsSelector
Range
RecommendPoints
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
name of the collection |
| positive |
PointId |
repeated |
Look for vectors closest to those |
| negative |
PointId |
repeated |
Try to avoid vectors like this |
| filter |
Filter |
|
Filter conditions - return only those points that satisfy the specified conditions |
| top |
uint64 |
|
Max number of result |
| with_vector |
bool |
optional |
Return point vector with the result. |
| with_payload |
WithPayloadSelector |
|
Options for specifying which payload to include or not |
| params |
SearchParams |
|
Search config |
| score_threshold |
float |
optional |
If provided - cut off results with worse scores |
RecommendResponse
| Field |
Type |
Label |
Description |
| result |
ScoredPoint |
repeated |
|
| time |
double |
|
Time spent to process |
RetrievedPoint
RetrievedPoint.PayloadEntry
ScoredPoint
ScoredPoint.PayloadEntry
ScrollPoints
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
|
| filter |
Filter |
|
Filter conditions - return only those points that satisfy the specified conditions |
| offset |
PointId |
optional |
Start with this ID |
| limit |
uint32 |
optional |
Max number of result |
| with_vector |
bool |
optional |
Return point vector with the result. |
| with_payload |
WithPayloadSelector |
|
Options for specifying which payload to include or not |
ScrollResponse
| Field |
Type |
Label |
Description |
| next_page_offset |
PointId |
optional |
Use this offset for the next query |
| result |
RetrievedPoint |
repeated |
|
| time |
double |
|
Time spent to process |
SearchParams
| Field |
Type |
Label |
Description |
| hnsw_ef |
uint64 |
optional |
Params relevant to HNSW index. Size of the beam in a beam-search. Larger the value - more accurate the result, more time required for search. |
SearchPoints
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
name of the collection |
| vector |
float |
repeated |
vector |
| filter |
Filter |
|
Filter conditions - return only those points that satisfy the specified conditions |
| top |
uint64 |
|
Max number of result |
| with_vector |
bool |
optional |
Return point vector with the result. |
| with_payload |
WithPayloadSelector |
|
Options for specifying which payload to include or not |
| params |
SearchParams |
|
Search config |
| score_threshold |
float |
optional |
If provided - cut off results with worse scores |
SearchResponse
| Field |
Type |
Label |
Description |
| result |
ScoredPoint |
repeated |
|
| time |
double |
|
Time spent to process |
SetPayloadPoints
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
name of the collection |
| wait |
bool |
optional |
Wait until the changes have been applied? |
| payload |
SetPayloadPoints.PayloadEntry |
repeated |
New payload values |
| points |
PointId |
repeated |
List of point to modify |
SetPayloadPoints.PayloadEntry
UpdateResult
| Field |
Type |
Label |
Description |
| operation_id |
uint64 |
|
Number of operation |
| status |
UpdateStatus |
|
Operation status |
UpsertPoints
| Field |
Type |
Label |
Description |
| collection_name |
string |
|
name of the collection |
| wait |
bool |
optional |
Wait until the changes have been applied? |
| points |
PointStruct |
repeated |
|
ValuesCount
WithPayloadSelector
FieldType
| Name |
Number |
Description |
| FieldTypeKeyword |
0 |
|
| FieldTypeInteger |
1 |
|
| FieldTypeFloat |
2 |
|
| FieldTypeGeo |
3 |
|
UpdateStatus
| Name |
Number |
Description |
| UnknownUpdateStatus |
0 |
|
| Acknowledged |
1 |
Update is received, but not processed yet |
| Completed |
2 |
Update is applied and ready for search |
Top
points_service.proto
Points
Top
qdrant.proto
HealthCheckReply
HealthCheckRequest
Qdrant
Scalar Value Types
| .proto Type |
Notes |
C++ |
Java |
Python |
Go |
C# |
PHP |
Ruby |
| double |
|
double |
double |
float |
float64 |
double |
float |
Float |
| float |
|
float |
float |
float |
float32 |
float |
float |
Float |
| int32 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. |
int32 |
int |
int |
int32 |
int |
integer |
Bignum or Fixnum (as required) |
| int64 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. |
int64 |
long |
int/long |
int64 |
long |
integer/string |
Bignum |
| uint32 |
Uses variable-length encoding. |
uint32 |
int |
int/long |
uint32 |
uint |
integer |
Bignum or Fixnum (as required) |
| uint64 |
Uses variable-length encoding. |
uint64 |
long |
int/long |
uint64 |
ulong |
integer/string |
Bignum or Fixnum (as required) |
| sint32 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. |
int32 |
int |
int |
int32 |
int |
integer |
Bignum or Fixnum (as required) |
| sint64 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. |
int64 |
long |
int/long |
int64 |
long |
integer/string |
Bignum |
| fixed32 |
Always four bytes. More efficient than uint32 if values are often greater than 2^28. |
uint32 |
int |
int |
uint32 |
uint |
integer |
Bignum or Fixnum (as required) |
| fixed64 |
Always eight bytes. More efficient than uint64 if values are often greater than 2^56. |
uint64 |
long |
int/long |
uint64 |
ulong |
integer/string |
Bignum |
| sfixed32 |
Always four bytes. |
int32 |
int |
int |
int32 |
int |
integer |
Bignum or Fixnum (as required) |
| sfixed64 |
Always eight bytes. |
int64 |
long |
int/long |
int64 |
long |
integer/string |
Bignum |
| bool |
|
bool |
boolean |
boolean |
bool |
bool |
boolean |
TrueClass/FalseClass |
| string |
A string must always contain UTF-8 encoded or 7-bit ASCII text. |
string |
String |
str/unicode |
string |
string |
string |
String (UTF-8) |
| bytes |
May contain any arbitrary sequence of bytes. |
string |
ByteString |
str |
[]byte |
ByteString |
string |
String (ASCII-8BIT) |