mirror of
https://github.com/hanzoai/vector-go.git
synced 2026-10-30 18:18:35 +00:00
* v1.17.0 Signed-off-by: Anush008 <[email protected]> * chore: Bump to v1.17.0 Signed-off-by: Anush008 <[email protected]> --------- Signed-off-by: Anush008 <[email protected]>
177 lines
3.9 KiB
Protocol Buffer
177 lines
3.9 KiB
Protocol Buffer
syntax = "proto3";
|
|
package qdrant;
|
|
|
|
option java_outer_classname = "Common";
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
message PointId {
|
|
oneof point_id_options {
|
|
// Numerical ID of the point
|
|
uint64 num = 1;
|
|
// UUID
|
|
string uuid = 2;
|
|
}
|
|
}
|
|
|
|
message GeoPoint {
|
|
double lon = 1;
|
|
double lat = 2;
|
|
}
|
|
|
|
message Filter {
|
|
// At least one of those conditions should match
|
|
repeated Condition should = 1;
|
|
// All conditions must match
|
|
repeated Condition must = 2;
|
|
// All conditions must NOT match
|
|
repeated Condition must_not = 3;
|
|
// At least minimum amount of given conditions should match
|
|
optional MinShould min_should = 4;
|
|
}
|
|
|
|
message MinShould {
|
|
repeated Condition conditions = 1;
|
|
uint64 min_count = 2;
|
|
}
|
|
|
|
message Condition {
|
|
oneof condition_one_of {
|
|
FieldCondition field = 1;
|
|
IsEmptyCondition is_empty = 2;
|
|
HasIdCondition has_id = 3;
|
|
Filter filter = 4;
|
|
IsNullCondition is_null = 5;
|
|
NestedCondition nested = 6;
|
|
HasVectorCondition has_vector = 7;
|
|
}
|
|
}
|
|
|
|
message IsEmptyCondition {
|
|
string key = 1;
|
|
}
|
|
|
|
message IsNullCondition {
|
|
string key = 1;
|
|
}
|
|
|
|
message HasIdCondition {
|
|
repeated PointId has_id = 1;
|
|
}
|
|
|
|
message HasVectorCondition {
|
|
string has_vector = 1;
|
|
}
|
|
|
|
message NestedCondition {
|
|
// Path to nested object
|
|
string key = 1;
|
|
// Filter condition
|
|
Filter filter = 2;
|
|
}
|
|
|
|
message FieldCondition {
|
|
string key = 1;
|
|
// Check if point has field with a given value
|
|
Match match = 2;
|
|
// Check if points value lies in a given range
|
|
Range range = 3;
|
|
// Check if points geolocation lies in a given area
|
|
GeoBoundingBox geo_bounding_box = 4;
|
|
// Check if geo point is within a given radius
|
|
GeoRadius geo_radius = 5;
|
|
// Check number of values for a specific field
|
|
ValuesCount values_count = 6;
|
|
// Check if geo point is within a given polygon
|
|
GeoPolygon geo_polygon = 7;
|
|
// Check if datetime is within a given range
|
|
DatetimeRange datetime_range = 8;
|
|
// Check if field is empty
|
|
optional bool is_empty = 9;
|
|
// Check if field is null
|
|
optional bool is_null = 10;
|
|
}
|
|
|
|
message Match {
|
|
oneof match_value {
|
|
// Match string keyword
|
|
string keyword = 1;
|
|
// Match integer
|
|
int64 integer = 2;
|
|
// Match boolean
|
|
bool boolean = 3;
|
|
// Match text
|
|
string text = 4;
|
|
// Match multiple keywords
|
|
RepeatedStrings keywords = 5;
|
|
// Match multiple integers
|
|
RepeatedIntegers integers = 6;
|
|
// Match any other value except those integers
|
|
RepeatedIntegers except_integers = 7;
|
|
// Match any other value except those keywords
|
|
RepeatedStrings except_keywords = 8;
|
|
// Match phrase text
|
|
string phrase = 9;
|
|
// Match any word in the text
|
|
string text_any = 10;
|
|
}
|
|
}
|
|
|
|
message RepeatedStrings {
|
|
repeated string strings = 1;
|
|
}
|
|
|
|
message RepeatedIntegers {
|
|
repeated int64 integers = 1;
|
|
}
|
|
|
|
message Range {
|
|
optional double lt = 1;
|
|
optional double gt = 2;
|
|
optional double gte = 3;
|
|
optional double lte = 4;
|
|
}
|
|
|
|
message DatetimeRange {
|
|
optional google.protobuf.Timestamp lt = 1;
|
|
optional google.protobuf.Timestamp gt = 2;
|
|
optional google.protobuf.Timestamp gte = 3;
|
|
optional google.protobuf.Timestamp lte = 4;
|
|
}
|
|
|
|
message GeoBoundingBox {
|
|
// north-west corner
|
|
GeoPoint top_left = 1;
|
|
// south-east corner
|
|
GeoPoint bottom_right = 2;
|
|
}
|
|
|
|
message GeoRadius {
|
|
// Center of the circle
|
|
GeoPoint center = 1;
|
|
// In meters
|
|
float radius = 2;
|
|
}
|
|
|
|
message GeoLineString {
|
|
// Ordered sequence of GeoPoints representing the line
|
|
repeated GeoPoint points = 1;
|
|
}
|
|
|
|
// For a valid GeoPolygon, both the exterior and interior GeoLineStrings must
|
|
// consist of a minimum of 4 points.
|
|
// Additionally, the first and last points of each GeoLineString must be the same.
|
|
message GeoPolygon {
|
|
// The exterior line bounds the surface
|
|
GeoLineString exterior = 1;
|
|
// Interior lines (if present) bound holes within the surface
|
|
repeated GeoLineString interiors = 2;
|
|
}
|
|
|
|
message ValuesCount {
|
|
optional uint64 lt = 1;
|
|
optional uint64 gt = 2;
|
|
optional uint64 gte = 3;
|
|
optional uint64 lte = 4;
|
|
}
|