diff --git a/docs/api/README.md b/docs/api/README.md
index fcf1c94e57..62ed698784 100644
--- a/docs/api/README.md
+++ b/docs/api/README.md
@@ -13,8 +13,7 @@ The APIs overview tables is here:
| Insert Service | Insert new vector(s) into the Vald Agent Pods. | [Insert](../api/insert.md#insert-rpc)
[StreamInsert](../api/insert.md#streaminsert-rpc)
[MultiInsert](../api/insert.md#multiinsert-rpc) | [Vald Insert APIs](../api/insert.md) |
| Update Service | Update the exists vector(s) in the Vald Agent Pods. | [Update](../api/update.md#update-rpc)
[StreamUpdate](../api/update.md#streamupdate-rpc)
[MultiUpdate](../api/update.md#multiupdate-rpc) | [Vald Update APIs](../api/update.md) |
| Upsert Service | Update the exists vector(s) in the Vald Agent Pods or Insert new vector(s) into the Vald Agent Pods if the vector is not exists. | [Upsert](../api/upsert.md#upsert-rpc)
[StreamUpsert](../api/upsert.md#streamupsert-rpc)
[MultiUpdate](../api/upsert.md#multiupsert-rpc) | [Vald Upsert APIs](../api/upsert.md) |
-| Search Service | Search nearest neighbor vectors using query (vectors or IDs).
There are 2 types of Search methods: Search (means ANN Search) and LinearSearch. | [Search](../api/search.md#search-rpc)
[SearchByID](../api/search.md#searchbyid-rpc)
[StreamSearch](../api/search.md#streamsearch-rpc)
[StreamSearchByID](../api/search.md#streamsearchbyid-rpc)
[MultiSearch](../api/search.md#multisearch-rpc)
[MultiSearchByID](../api/search.md#multisearchbyid-rpc) | [Vald Search APIs](../api/search.md) |
-| ^ | ^ | [LinearSearch](../api/search.md#linearsearch-rpc)
[LinearSearchByID](../api/search.md#linearsearchbyid-rpc)
[StreamLinearSearch](../api/search.md#streamlinearsearch-rpc)
[StreamLinearSearchByID](../api/search.md#streamlinearsearchbyid-rpc)
[MultiLinearSearch](../api/search.md#multilinearsearch-rpc)
[MultiLinearSearchByID](../api/search.md#multilinearsearchbyid-rpc) | ^ |
+| Search Service | Search nearest neighbor vectors using query (vectors or IDs).
There are 2 types of Search methods: Search (means ANN Search) and LinearSearch. | [Search](../api/search.md#search-rpc)
[SearchByID](../api/search.md#searchbyid-rpc)
[StreamSearch](../api/search.md#streamsearch-rpc)
[StreamSearchByID](../api/search.md#streamsearchbyid-rpc)
[MultiSearch](../api/search.md#multisearch-rpc)
[MultiSearchByID](../api/search.md#multisearchbyid-rpc)
[LinearSearch](../api/search.md#linearsearch-rpc)
[LinearSearchByID](../api/search.md#linearsearchbyid-rpc)
[StreamLinearSearch](../api/search.md#streamlinearsearch-rpc)
[StreamLinearSearchByID](../api/search.md#streamlinearsearchbyid-rpc)
[MultiLinearSearch](../api/search.md#multilinearsearch-rpc)
[MultiLinearSearchByID](../api/search.md#multilinearsearchbyid-rpc) | [Vald Search APIs](../api/search.md) |
| Remove Service | Remove the exists vector(s) from the Vald Agent Pods. | [Remove](../api/remove.md#remove-rpc)
[StreamRemove](../api/remove.md#streamremove-rpc)
[MultiRemove](../api/remove.md#multiremove-rpc) | [Vald Remove APIs](../api/remove.md) |
| Object Service | Get information of vector(s) indexed into the Vald Agent Pods. | [Exists](../api/object.md#exists-rpc)
[GetObject](../api/object.md#getobject-rpc)
[StreamGetObject](../api/object.md#streamgetobject-rpc) | [Vald Object APIs](../api/object.md) |
diff --git a/docs/api/insert.md b/docs/api/insert.md
index a02edea5a3..c4f62df4ba 100644
--- a/docs/api/insert.md
+++ b/docs/api/insert.md
@@ -4,7 +4,7 @@
Insert Service is responsible for inserting new vectors into the `vald-agent`.
-```bash
+```rpc
service Insert {
rpc Insert(payload.v1.Insert.Request) returns (payload.v1.Object.Location) {}
@@ -22,7 +22,7 @@ Inset RPC is the method to add a new single vector.
- the scheme of `payload.v1.Insert.Request`
- ```bash
+ ```rpc
message Insert {
message Request {
Object.Vector vector = 1 [ (validate.rules).repeated .min_items = 2 ];
@@ -45,29 +45,32 @@ Inset RPC is the method to add a new single vector.
```
- Insert.Request
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |vector|Object.Vector| | \* | the information of vector |
- |config|Config| | \* | the configuration of the insert request |
+
+ | field | type | label | required | desc. |
+ | :----: | :------------ | :---- | :------: | :-------------------------------------- |
+ | vector | Object.Vector | | \* | the information of vector |
+ | config | Config | | \* | the configuration of the insert request |
- Insert.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. |
- |timestamp|int64| | | the timestamp of the vector inserted.
if it is N/A, the current time will be used. |
- |filters|Filter.Config| | | configuration for filter |
+
+ | field | type | label | required | desc. |
+ | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- |
+ | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. |
+ | timestamp | int64 | | | the timestamp of the vector inserted.
if it is N/A, the current time will be used. |
+ | filters | Filter.Config | | | configuration for filter |
- Object.Vector
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. |
- |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.|
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------------- |
+ | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. |
+ | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. |
### Output
- the scheme of `payload.v1.Object.Location`
- ```bash
+ ```rpc
message Object {
message Location {
string name = 1;
@@ -78,11 +81,12 @@ Inset RPC is the method to add a new single vector.
```
- Object.Location
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |name|string| | the name of vald agent pod where the request vector is inserted. |
- |uuid|string| | the ID of the inserted vector. It is the same as an `Object.Vector`. |
- |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. |
+
+ | field | type | label | desc. |
+ | :---: | :----- | :---------------------- | :--------------------------------------------------------------------- |
+ | name | string | | the name of vald agent pod where the request vector is inserted. |
+ | uuid | string | | the ID of the inserted vector. It is the same as an `Object.Vector`. |
+ | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. |
### Status Code
@@ -104,7 +108,7 @@ It's the recommended method to insert the large amount of vectors.
- the scheme of `payload.v1.Insert.Request stream`
- ```bash
+ ```rpc
message Insert {
message Request {
Object.Vector vector = 1 [ (validate.rules).repeated .min_items = 2 ];
@@ -126,29 +130,32 @@ It's the recommended method to insert the large amount of vectors.
```
- Insert.Request
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |vector|Object.Vector| | \* | the information of vector |
- |config|Config| | \* | the configuration of the insert request |
+
+ | field | type | label | required | desc. |
+ | :----: | :------------ | :---- | :------: | :-------------------------------------- |
+ | vector | Object.Vector | | \* | the information of vector |
+ | config | Config | | \* | the configuration of the insert request |
- Insert.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. |
- |timestamp|int64| | | the timestamp of the vector inserted.
if it is N/A, the current time will be used. |
- |filters|Filter.Config| | | configuration for filter |
+
+ | field | type | label | required | desc. |
+ | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- |
+ | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. |
+ | timestamp | int64 | | | the timestamp of the vector inserted.
if it is N/A, the current time will be used. |
+ | filters | Filter.Config | | | configuration for filter |
- Object.Vector
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the ID of the vector. ID should consist of 1 or more characters. |
- |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. |
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :--------------------- | :------: | :--------------------------------------------------------------- |
+ | id | string | | \* | the ID of the vector. ID should consist of 1 or more characters. |
+ | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. |
### Output
- the scheme of `payload.v1.Object.StreamLocation`
- ```bash
+ ```rpc
message Object {
message StreamLocation {
oneof payload {
@@ -166,24 +173,27 @@ It's the recommended method to insert the large amount of vectors.
```
- Object.StreamLocation
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |location|Object.Location| | the information of `Object.Location` data. |
- |status|google.rpc.Status| | the status of google RPC. |
+
+ | field | type | label | desc. |
+ | :------: | :---------------- | :---- | :----------------------------------------- |
+ | location | Object.Location | | the information of `Object.Location` data. |
+ | status | google.rpc.Status | | the status of google RPC. |
- Object.Location
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |name|string| | the name of vald agent pod where the request vector is inserted. |
- |uuid|string| | the ID of the inserted vector. It is the same as an `Object.Vector`. |
- |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. |
+
+ | field | type | label | desc. |
+ | :---: | :----- | :---------------------- | :--------------------------------------------------------------------- |
+ | name | string | | the name of vald agent pod where the request vector is inserted. |
+ | uuid | string | | the ID of the inserted vector. It is the same as an `Object.Vector`. |
+ | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. |
- [google.rpc.Status](https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto)
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |code|int32| | status code (code list is next section)|
- |message|string| | error message |
- |details|google.protobuf.Any| repeated(Array[any]) | the details error message list|
+
+ | field | type | label | desc. |
+ | :-----: | :------------------ | :------------------- | :-------------------------------------- |
+ | code | int32 | | status code (code list is next section) |
+ | message | string | | error message |
+ | details | google.protobuf.Any | repeated(Array[any]) | the details error message list |
### Status Code
@@ -207,7 +217,7 @@ Please be careful that the size of the request exceed the limit.
- the scheme of `payload.v1.Insert.MultiRequest`
- ```bash
+ ```rpc
message Insert {
message MultiRequest { repeated Request requests = 1; }
@@ -232,34 +242,38 @@ Please be careful that the size of the request exceed the limit.
```
- Insert.MultiRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |requests|Insert.Request| repeated(Array[Insert.Request]) | \* | the request list |
+
+ | field | type | label | required | desc. |
+ | :------: | :------------- | :------------------------------ | :------: | :--------------- |
+ | requests | Insert.Request | repeated(Array[Insert.Request]) | \* | the request list |
- Insert.Request
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |vector|Object.Vector| | \* | the information of vector |
- |config|Config| | \* | the configuration of the insert request |
+
+ | field | type | label | required | desc. |
+ | :----: | :------------ | :---- | :------: | :-------------------------------------- |
+ | vector | Object.Vector | | \* | the information of vector |
+ | config | Config | | \* | the configuration of the insert request |
- Insert.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. |
- |timestamp|int64| | | the timestamp of the vector inserted.
if it is N/A, the current time will be used. |
- |filters|Filter.Config| | | configuration for filter |
+
+ | field | type | label | required | desc. |
+ | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- |
+ | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. |
+ | timestamp | int64 | | | the timestamp of the vector inserted.
if it is N/A, the current time will be used. |
+ | filters | Filter.Config | | | configuration for filter |
- Object.Vector
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. |
- |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.|
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------------- |
+ | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. |
+ | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. |
### Output
- the scheme of `payload.v1.Object.Locations`.
- ```bash
+ ```rpc
message Object {
message Locations { repeated Location locations = 1; }
@@ -272,16 +286,18 @@ Please be careful that the size of the request exceed the limit.
```
- Object.Locations
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |location|Object.Location| repeated(Array[Object.Location]) | the list of `Object.Location`. |
+
+ | field | type | label | desc. |
+ | :------: | :-------------- | :------------------------------- | :----------------------------- |
+ | location | Object.Location | repeated(Array[Object.Location]) | the list of `Object.Location`. |
- Object.Location
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |name|string| | the name of vald agent pod where the request vector is inserted. |
- |uuid|string| | the ID of the inserted vector. It is the same as an `Object.Vector`. |
- |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. |
+
+ | field | type | label | desc. |
+ | :---: | :----- | :---------------------- | :--------------------------------------------------------------------- |
+ | name | string | | the name of vald agent pod where the request vector is inserted. |
+ | uuid | string | | the ID of the inserted vector. It is the same as an `Object.Vector`. |
+ | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. |
### Status Code
diff --git a/docs/api/object.md b/docs/api/object.md
index f02a459e9e..9571ab66c2 100644
--- a/docs/api/object.md
+++ b/docs/api/object.md
@@ -4,7 +4,7 @@
Object Service is responsible for getting inserted vectors and checking whether vectors are inserted into the `vald-agent` or not.
-```bash
+```rpc
service Object {
rpc Exists(payload.v1.Object.ID) returns (payload.v1.Object.ID) {}
@@ -24,7 +24,7 @@ Exists RPC is the method to check the a vector exists in the `vald-agent`.
- the scheme of `payload.v1.Object.ID`
- ```bash
+ ```rpc
message Object {
message ID {
string id = 1 [ (validate.rules).string.min_len = 1 ];
@@ -33,15 +33,16 @@ Exists RPC is the method to check the a vector exists in the `vald-agent`.
```
- Object.ID
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. |
+
+ | field | type | label | required | desc. |
+ | :---: | :----- | :---- | :------: | :------------------------------------------------------------- |
+ | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. |
### Output
- the scheme of `payload.v1.Object.ID`
- ```bash
+ ```rpc
message Object {
message ID {
string id = 1 [ (validate.rules).string.min_len = 1 ];
@@ -50,18 +51,20 @@ Exists RPC is the method to check the a vector exists in the `vald-agent`.
```
- Object.ID
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the ID of a vector. ID should consist of 1 or more characters. |
+
+ | field | type | label | desc. |
+ | :---: | :----- | :---- | :------------------------------------------------------------- |
+ | id | string | | the ID of a vector. ID should consist of 1 or more characters. |
### Status Code
-| code | desc. |
-| :--: | :--------------- |
-| 0 | OK |
-| 3 | INVALID_ARGUMENT |
-| 5 | NOT_FOUND |
-| 13 | INTERNAL |
+| code | desc. |
+| :--: | :---------------- |
+| 0 | OK |
+| 3 | INVALID_ARGUMENT |
+| 4 | DEADLINE_EXCEEDED |
+| 5 | NOT_FOUND |
+| 13 | INTERNAL |
## GetObject RPC
@@ -71,7 +74,7 @@ GetObject RPC is the method to get the metadata of a vector inserted into the `v
- the scheme of `payload.v1.Object.VectorRequest`
- ```bash
+ ```rpc
message Object {
message VectorRequest {
ID id = 1 [ (validate.rules).repeated .min_items = 2 ];
@@ -85,21 +88,23 @@ GetObject RPC is the method to get the metadata of a vector inserted into the `v
```
- Object.VectorRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|Object.ID| | \* | the ID of a vector. ID should consist of 1 or more characters. |
- |filters|Filter.Config| | | configuration for filter. |
+
+ | field | type | label | required | desc. |
+ | :-----: | :------------ | :---- | :------: | :------------------------------------------------------------- |
+ | id | Object.ID | | \* | the ID of a vector. ID should consist of 1 or more characters. |
+ | filters | Filter.Config | | | configuration for filter. |
- Object.ID
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. |
+
+ | field | type | label | required | desc. |
+ | :---: | :----- | :---- | :------: | :------------------------------------------------------------- |
+ | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. |
### Output
- the scheme of `payload.v1.Object.Vector`
- ```bash
+ ```rpc
message Object {
message Vector {
string id = 1 [ (validate.rules).string.min_len = 1 ];
@@ -109,10 +114,11 @@ GetObject RPC is the method to get the metadata of a vector inserted into the `v
```
- Object.Vector
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the ID of a vector. ID should consist of 1 or more characters. |
- |vector|float| repeated(Array[float]) | the vector data. its dimension is between 2 and 65,536. |
+
+ | field | type | label | desc. |
+ | :----: | :----- | :--------------------- | :------------------------------------------------------------- |
+ | id | string | | the ID of a vector. ID should consist of 1 or more characters. |
+ | vector | float | repeated(Array[float]) | the vector data. its dimension is between 2 and 65,536. |
### Status Code
@@ -131,7 +137,7 @@ Each Upsert request and response are independent.
- the scheme of `payload.v1.Object.VectorRequest stream`
- ```bash
+ ```rpc
message Object {
message VectorRequest {
ID id = 1 [ (validate.rules).repeated .min_items = 2 ];
@@ -145,21 +151,23 @@ Each Upsert request and response are independent.
```
- Object.VectorRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|Object.ID| | \* | the ID of a vector. ID should consist of 1 or more characters. |
- |filters|Filter.Config| | | configuration for filter. |
+
+ | field | type | label | required | desc. |
+ | :-----: | :------------ | :---- | :------: | :------------------------------------------------------------- |
+ | id | Object.ID | | \* | the ID of a vector. ID should consist of 1 or more characters. |
+ | filters | Filter.Config | | | configuration for filter. |
- Object.ID
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. |
+
+ | field | type | label | required | desc. |
+ | :---: | :----- | :---- | :------: | :------------------------------------------------------------- |
+ | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. |
### Output
- the scheme of `payload.v1.Object.StreamVector`
- ```bash
+ ```rpc
message Object {
message StreamVector {
oneof payload {
@@ -175,16 +183,18 @@ Each Upsert request and response are independent.
```
- Object.StreamVector
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |vector|Vector| | the information of Object.Vector data. |
- |status|google.rpc.Status| | the status of google RPC. |
+
+ | field | type | label | desc. |
+ | :----: | :---------------- | :---- | :------------------------------------- |
+ | vector | Vector | | the information of Object.Vector data. |
+ | status | google.rpc.Status | | the status of google RPC. |
- Object.Vector
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the ID of a vector. ID should consist of 1 or more characters. |
- |vector|float| repeated(Array[float]) | the vector data. its dimension is between 2 and 65,536. |
+
+ | field | type | label | desc. |
+ | :----: | :----- | :--------------------- | :------------------------------------------------------------- |
+ | id | string | | the ID of a vector. ID should consist of 1 or more characters. |
+ | vector | float | repeated(Array[float]) | the vector data. its dimension is between 2 and 65,536. |
### Status Code
@@ -194,4 +204,3 @@ Each Upsert request and response are independent.
| 3 | INVALID_ARGUMENT |
| 5 | NOT_FOUND |
| 13 | INTERNAL |
-
diff --git a/docs/api/remove.md b/docs/api/remove.md
index d588fe48fa..3bf91891e0 100644
--- a/docs/api/remove.md
+++ b/docs/api/remove.md
@@ -4,7 +4,7 @@
Remove Service is responsible for removing vectors which is indexed in the `vald-agent`.
-```bash
+```rpc
service Remove {
rpc Remove(payload.v1.Remove.Request) returns (payload.v1.Object.Location) {}
@@ -25,7 +25,7 @@ Remove RPC is the method to remove a single vector.
- the scheme of `payload.v1.Remove.Request`
- ```bash
+ ```rpc
message Remove {
message Request {
Object.ID id = 1;
@@ -46,27 +46,30 @@ Remove RPC is the method to remove a single vector.
```
- Remove.Request
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|Object.ID| | \* | the id of vector |
- |config|Config| | \* | the configuration of the remove request |
+
+ | field | type | label | required | desc. |
+ | :----: | :-------- | :---- | :------: | :-------------------------------------- |
+ | id | Object.ID | | \* | the id of vector |
+ | config | Config | | \* | the configuration of the remove request |
- Remove.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. |
- |timestamp|int64| | | the timestamp of the vector removed.
if it is N/A, the current time will be used. |
+
+ | field | type | label | required | desc. |
+ | :---------------------: | :---- | :---- | :------: | :--------------------------------------------------------------------------------------------------- |
+ | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. |
+ | timestamp | int64 | | | the timestamp of the vector removed.
if it is N/A, the current time will be used. |
- Object.ID
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. |
+
+ | field | type | label | required | desc. |
+ | :---: | :----- | :---- | :------: | :------------------------------------------------------------- |
+ | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. |
### Output
- the scheme of `payload.v1.Object.Location`
- ```bash
+ ```rpc
message Object {
message Location {
string name = 1;
@@ -77,20 +80,22 @@ Remove RPC is the method to remove a single vector.
```
- Object.Location
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |name|string| | the name of vald agent pod where the request vector is removed. |
- |uuid|string| | the ID of the removed vector. It is the same as an `Object.ID`. |
- |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is removed. |
+
+ | field | type | label | desc. |
+ | :---: | :----- | :---------------------- | :-------------------------------------------------------------------- |
+ | name | string | | the name of vald agent pod where the request vector is removed. |
+ | uuid | string | | the ID of the removed vector. It is the same as an `Object.ID`. |
+ | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is removed. |
### Status Code
-| code | desc. |
-| :--: | :--------------- |
-| 0 | OK |
-| 3 | INVALID_ARGUMENT |
-| 5 | NOT_FOUND |
-| 13 | INTERNAL |
+| code | desc. |
+| :--: | :---------------- |
+| 0 | OK |
+| 3 | INVALID_ARGUMENT |
+| 4 | DEADLINE_EXCEEDED |
+| 5 | NOT_FOUND |
+| 13 | INTERNAL |
## StreamRemove RPC
@@ -103,7 +108,7 @@ It's the recommended method to remove the large amount of vectors.
- the scheme of `payload.v1.Remove.Request stream`
- ```bash
+ ```rpc
message Remove {
message Request {
Object.ID id = 1;
@@ -124,27 +129,30 @@ It's the recommended method to remove the large amount of vectors.
```
- Remove.Request
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|Object.ID| | \* | the id of vector |
- |config|Config| | \* | the configuration of the insert request |
+
+ | field | type | label | required | desc. |
+ | :----: | :-------- | :---- | :------: | :-------------------------------------- |
+ | id | Object.ID | | \* | the id of vector |
+ | config | Config | | \* | the configuration of the insert request |
- Remove.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. |
- |timestamp|int64| | | the timestamp of the vector removed.
if it is N/A, the current time will be used. |
+
+ | field | type | label | required | desc. |
+ | :---------------------: | :---- | :---- | :------: | :--------------------------------------------------------------------------------------------------- |
+ | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. |
+ | timestamp | int64 | | | the timestamp of the vector removed.
if it is N/A, the current time will be used. |
- Object.ID
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. |
+
+ | field | type | label | required | desc. |
+ | :---: | :----- | :---- | :------: | :------------------------------------------------------------- |
+ | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. |
### Output
- the scheme of `payload.v1.Object.StreamLocation`
- ```bash
+ ```rpc
message Object {
message StreamLocation {
oneof payload {
@@ -162,33 +170,37 @@ It's the recommended method to remove the large amount of vectors.
```
- Object.StreamLocation
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |location|Object.Location| | the information of `Object.Location` data. |
- |status|google.rpc.Status| | the status of google RPC |
+
+ | field | type | label | desc. |
+ | :------: | :---------------- | :---- | :----------------------------------------- |
+ | location | Object.Location | | the information of `Object.Location` data. |
+ | status | google.rpc.Status | | the status of google RPC |
- Object.Location
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |name|string| | the name of vald agent pod where the request vector is removed. |
- |uuid|string| | the ID of the removed vector. It is the same as an `Object.ID`. |
- |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is removed. |
+
+ | field | type | label | desc. |
+ | :---: | :----- | :---------------------- | :-------------------------------------------------------------------- |
+ | name | string | | the name of vald agent pod where the request vector is removed. |
+ | uuid | string | | the ID of the removed vector. It is the same as an `Object.ID`. |
+ | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is removed. |
- [google.rpc.Status](https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto)
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |code|int32| | status code (code list is next section) |
- |message|string| | error message |
- |details|google.protobuf.Any| repeated(Array[any]) | the details error message list |
+
+ | field | type | label | desc. |
+ | :-----: | :------------------ | :------------------- | :-------------------------------------- |
+ | code | int32 | | status code (code list is next section) |
+ | message | string | | error message |
+ | details | google.protobuf.Any | repeated(Array[any]) | the details error message list |
### Status Code
-| code | desc. |
-| :--: | :--------------- |
-| 0 | OK |
-| 3 | INVALID_ARGUMENT |
-| 5 | NOT_FOUND |
-| 13 | INTERNAL |
+| code | desc. |
+| :--: | :---------------- |
+| 0 | OK |
+| 3 | INVALID_ARGUMENT |
+| 4 | DEADLINE_EXCEEDED |
+| 5 | NOT_FOUND |
+| 13 | INTERNAL |
## MultiRemove RPC
@@ -203,7 +215,7 @@ Please be careful that the size of the request exceed the limit.
- the scheme of `payload.v1.Remove.MultiRequest`
- ```bash
+ ```rpc
message Remove {
message MultiRequest {
repeated Request requests = 1;
@@ -228,32 +240,36 @@ Please be careful that the size of the request exceed the limit.
```
- Remove.MultiRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |requests|Remove.Request| repeated(Array[Insert.Request]) | \* | the request list |
+
+ | field | type | label | required | desc. |
+ | :------: | :------------- | :------------------------------ | :------: | :--------------- |
+ | requests | Remove.Request | repeated(Array[Insert.Request]) | \* | the request list |
- Remove.Request
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|Object.ID| | \* | the id of vector |
- |config|Config| | \* | the configuration of the remove request |
+
+ | field | type | label | required | desc. |
+ | :----: | :-------- | :---- | :------: | :-------------------------------------- |
+ | id | Object.ID | | \* | the id of vector |
+ | config | Config | | \* | the configuration of the remove request |
- Remove.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. |
- |timestamp|int64| | | the timestamp of the vector removed.
if it is N/A, the current time will be used. |
+
+ | field | type | label | required | desc. |
+ | :---------------------: | :---- | :---- | :------: | :--------------------------------------------------------------------------------------------------- |
+ | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. |
+ | timestamp | int64 | | | the timestamp of the vector removed.
if it is N/A, the current time will be used. |
- Object.ID
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. |
+
+ | field | type | label | required | desc. |
+ | :---: | :----- | :---- | :------: | :------------------------------------------------------------- |
+ | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. |
### Output
- the scheme of `payload.v1.Object.Locations`.
- ```bash
+ ```rpc
message Object {
message Locations { repeated Location locations = 1; }
@@ -266,22 +282,25 @@ Please be careful that the size of the request exceed the limit.
```
- Object.Locations
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |location|Object.Location| repeated(Array[Object.Location]) | the list of `Object.Location`. |
+
+ | field | type | label | desc. |
+ | :------: | :-------------- | :------------------------------- | :----------------------------- |
+ | location | Object.Location | repeated(Array[Object.Location]) | the list of `Object.Location`. |
- Object.Location
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |name|string| | the name of vald agent pod where the request vector is removed. |
- |uuid|string| | the ID of the removed vector. It is the same as an `Object.Vector`. |
- |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is removed. |
+
+ | field | type | label | desc. |
+ | :---: | :----- | :---------------------- | :-------------------------------------------------------------------- |
+ | name | string | | the name of vald agent pod where the request vector is removed. |
+ | uuid | string | | the ID of the removed vector. It is the same as an `Object.Vector`. |
+ | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is removed. |
### Status Code
-| code | desc. |
-| :--: | :--------------- |
-| 0 | OK |
-| 3 | INVALID_ARGUMENT |
-| 5 | NOT_FOUND |
-| 13 | INTERNAL |
+| code | desc. |
+| :--: | :---------------- |
+| 0 | OK |
+| 3 | INVALID_ARGUMENT |
+| 4 | DEADLINE_EXCEEDED |
+| 5 | NOT_FOUND |
+| 13 | INTERNAL |
diff --git a/docs/api/search.md b/docs/api/search.md
index ef3b704bee..78e90a006d 100644
--- a/docs/api/search.md
+++ b/docs/api/search.md
@@ -4,7 +4,7 @@
Search Service is responsible for searching vectors from `vald-agent` which are similar to user request vector.
-```bash
+```rpc
service Search {
rpc Search(payload.v1.Search.Request) returns (payload.v1.Search.Response) {}
@@ -50,7 +50,7 @@ Search RPC is the method to search vector(s) similar to request vector.
- the scheme of `payload.v1.Search.Request`
- ```bash
+ ```rpc
message Search {
message Request {
repeated float vector = 1 [ (validate.rules).repeated .min_items = 2 ];
@@ -70,28 +70,30 @@ Search RPC is the method to search vector(s) similar to request vector.
```
- Search.Request
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.|
- |config|Config| | \* | the configuration of the search request |
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------ |
+ | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. |
+ | config | Config | | \* | the configuration of the search request |
- Search.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |request_id|string| | | unique request ID |
- |num|uint32| | \* | the maximum number of result to be returned |
- |radius|float| | \* | the search radius |
- |epsilon|float| | \* | the search coefficient (default value is `0.1`) |
- |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) |
- |ingress_filters|Filter.Config| | | Ingress Filter configuration |
- |egress_filters|Filter.Config| | | Egress Filter configuration |
- |min_num| uint32 | | the minimum number of result to be returned |
+
+ | field | type | label | required | desc. |
+ | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- |
+ | request_id | string | | | unique request ID |
+ | num | uint32 | | \* | the maximum number of result to be returned |
+ | radius | float | | \* | the search radius |
+ | epsilon | float | | \* | the search coefficient (default value is `0.1`) |
+ | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
+ | ingress_filters | Filter.Config | | | Ingress Filter configuration |
+ | egress_filters | Filter.Config | | | Egress Filter configuration |
+ | min_num | uint32 | | the minimum number of result to be returned |
### Output
- the scheme of `payload.v1.Search.Response`.
- ```bash
+ ```rpc
message Search {
message Response {
string request_id = 1;
@@ -108,16 +110,18 @@ Search RPC is the method to search vector(s) similar to request vector.
```
- Search.Response
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |request_id|string| | the unique request ID |
- |results|Object.Distance| repeated(Array[Object.Distance]) | search results |
+
+ | field | type | label | desc. |
+ | :--------: | :-------------- | :------------------------------- | :-------------------- |
+ | request_id | string | | the unique request ID |
+ | results | Object.Distance | repeated(Array[Object.Distance]) | search results |
- Object.Distance
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the vector ID |
- |distance|float| | the distance between result vector and request vector |
+
+ | field | type | label | desc. |
+ | :------: | :----- | :---- | :---------------------------------------------------- |
+ | id | string | | the vector ID |
+ | distance | float | | the distance between result vector and request vector |
### Status Code
@@ -137,7 +141,7 @@ The vector with the same requested ID should be indexed into the `vald-agent` be
- the scheme of `payload.v1.Search.IDRequest`
- ```bash
+ ```rpc
message Search {
message IDRequest {
string id = 1;
@@ -157,28 +161,30 @@ The vector with the same requested ID should be indexed into the `vald-agent` be
```
- Search.IDRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the vector ID to be searched |
- |config|Config| | \* | the configuration of the search request |
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :---- | :------: | :-------------------------------------- |
+ | id | string | | \* | the vector ID to be searched |
+ | config | Config | | \* | the configuration of the search request |
- Search.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |request_id|string| | | unique request ID |
- |num|uint32| | \* | the maximum number of result to be returned |
- |radius|float| | \* | the search radius |
- |epsilon|float| | \* | the search coefficient (default value is `0.1`) |
- |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) |
- |ingress_filters|Filter.Config| | | Ingress Filter configuration |
- |egress_filters|Filter.Config| | | Egress Filter configuration |
- |min_num| uint32 | | the minimum number of result to be returned |
+
+ | field | type | label | required | desc. |
+ | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- |
+ | request_id | string | | | unique request ID |
+ | num | uint32 | | \* | the maximum number of result to be returned |
+ | radius | float | | \* | the search radius |
+ | epsilon | float | | \* | the search coefficient (default value is `0.1`) |
+ | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
+ | ingress_filters | Filter.Config | | | Ingress Filter configuration |
+ | egress_filters | Filter.Config | | | Egress Filter configuration |
+ | min_num | uint32 | | the minimum number of result to be returned |
### Output
- the scheme of `payload.v1.Search.Response`.
- ```bash
+ ```rpc
message Search {
message Response {
string request_id = 1;
@@ -195,16 +201,18 @@ The vector with the same requested ID should be indexed into the `vald-agent` be
```
- Search.Response
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |request_id|string| | the unique request ID |
- |results|Object.Distance| repeated(Array[Object.Distance]) | search results |
+
+ | field | type | label | desc. |
+ | :--------: | :-------------- | :------------------------------- | :-------------------- |
+ | request_id | string | | the unique request ID |
+ | results | Object.Distance | repeated(Array[Object.Distance]) | search results |
- Object.Distance
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the vector ID |
- |distance|float| | the distance between result vector and request vector |
+
+ | field | type | label | desc. |
+ | :------: | :----- | :---- | :---------------------------------------------------- |
+ | id | string | | the vector ID |
+ | distance | float | | the distance between result vector and request vector |
### Status Code
@@ -225,7 +233,7 @@ Each Search request and response are independent.
- the scheme of `payload.v1.Search.Request stream`
- ```bash
+ ```rpc
message Search {
message Request {
repeated float vector = 1 [ (validate.rules).repeated .min_items = 2 ];
@@ -245,28 +253,30 @@ Each Search request and response are independent.
```
- Search.Request
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.|
- |config|Config| | \* | the configuration of the search request |
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------ |
+ | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. |
+ | config | Config | | \* | the configuration of the search request |
- Search.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |request_id|string| | | unique request ID |
- |num|uint32| | \* | the maximum number of result to be returned |
- |radius|float| | \* | the search radius |
- |epsilon|float| | \* | the search coefficient (default value is `0.1`) |
- |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) |
- |ingress_filters|Filter.Config| | | Ingress Filter configuration |
- |egress_filters|Filter.Config| | | Egress Filter configuration |
- |min_num| uint32 | | the minimum number of result to be returned |
+
+ | field | type | label | required | desc. |
+ | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- |
+ | request_id | string | | | unique request ID |
+ | num | uint32 | | \* | the maximum number of result to be returned |
+ | radius | float | | \* | the search radius |
+ | epsilon | float | | \* | the search coefficient (default value is `0.1`) |
+ | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
+ | ingress_filters | Filter.Config | | | Ingress Filter configuration |
+ | egress_filters | Filter.Config | | | Egress Filter configuration |
+ | min_num | uint32 | | the minimum number of result to be returned |
### Output
- the scheme of `payload.v1.Search.StreamResponse`.
- ```bash
+ ```rpc
message Search {
message StreamResponse {
oneof payload {
@@ -290,22 +300,25 @@ Each Search request and response are independent.
```
- Search.StreamResponse
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |response|Response| | the search result response |
- |status|google.rpc.Status| | the status of google RPC |
+
+ | field | type | label | desc. |
+ | :------: | :---------------- | :---- | :------------------------- |
+ | response | Response | | the search result response |
+ | status | google.rpc.Status | | the status of google RPC |
- Search.Response
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |request_id|string| | the unique request ID |
- |results|Object.Distance| repeated(Array[Object.Distance]) | search results |
+
+ | field | type | label | desc. |
+ | :--------: | :-------------- | :------------------------------- | :-------------------- |
+ | request_id | string | | the unique request ID |
+ | results | Object.Distance | repeated(Array[Object.Distance]) | search results |
- Object.Distance
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the vector ID |
- |distance|float| | the distance between result vector and request vector |
+
+ | field | type | label | desc. |
+ | :------: | :----- | :---- | :---------------------------------------------------- |
+ | id | string | | the vector ID |
+ | distance | float | | the distance between result vector and request vector |
### Status Code
@@ -326,7 +339,7 @@ Each SearchByID request and response are independent.
- the scheme of `payload.v1.Search.IDRequest stream`
- ```bash
+ ```rpc
message Search {
message IDRequest {
string id = 1;
@@ -346,28 +359,30 @@ Each SearchByID request and response are independent.
```
- Search.IDRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the vector ID to be searched |
- |config|Config| | \* | the configuration of the search request |
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :---- | :------: | :-------------------------------------- |
+ | id | string | | \* | the vector ID to be searched |
+ | config | Config | | \* | the configuration of the search request |
- Search.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |request_id|string| | | unique request ID |
- |num|uint32| | \* | the maximum number of result to be returned |
- |radius|float| | \* | the search radius |
- |epsilon|float| | \* | the search coefficient (default value is `0.1`) |
- |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) |
- |ingress_filters|Filter.Config| | | Ingress Filter configuration |
- |egress_filters|Filter.Config| | | Egress Filter configuration |
- |min_num| uint32 | | the minimum number of result to be returned |
+
+ | field | type | label | required | desc. |
+ | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- |
+ | request_id | string | | | unique request ID |
+ | num | uint32 | | \* | the maximum number of result to be returned |
+ | radius | float | | \* | the search radius |
+ | epsilon | float | | \* | the search coefficient (default value is `0.1`) |
+ | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
+ | ingress_filters | Filter.Config | | | Ingress Filter configuration |
+ | egress_filters | Filter.Config | | | Egress Filter configuration |
+ | min_num | uint32 | | the minimum number of result to be returned |
### Output
- the scheme of `payload.v1.Search.StreamResponse`.
- ```bash
+ ```rpc
message Search {
message StreamResponse {
oneof payload {
@@ -391,22 +406,25 @@ Each SearchByID request and response are independent.
```
- Search.StreamResponse
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |response|Response| | the search result response |
- |status|google.rpc.Status| | the status of google RPC |
+
+ | field | type | label | desc. |
+ | :------: | :---------------- | :---- | :------------------------- |
+ | response | Response | | the search result response |
+ | status | google.rpc.Status | | the status of google RPC |
- Search.Response
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |request_id|string| | the unique request ID |
- |results|Object.Distance| repeated(Array[Object.Distance]) | search results |
+
+ | field | type | label | desc. |
+ | :--------: | :-------------- | :------------------------------- | :-------------------- |
+ | request_id | string | | the unique request ID |
+ | results | Object.Distance | repeated(Array[Object.Distance]) | search results |
- Object.Distance
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the vector ID |
- |distance|float| | the distance between result vector and request vector |
+
+ | field | type | label | desc. |
+ | :------: | :----- | :---- | :---------------------------------------------------- |
+ | id | string | | the vector ID |
+ | distance | float | | the distance between result vector and request vector |
### Status Code
@@ -430,7 +448,7 @@ Please be careful that the size of the request exceed the limit.
- the scheme of `payload.v1.Search.MultiRequest`
- ```bash
+ ```rpc
message Search {
message MultiRequest {
repeated Request requests = 1;
@@ -454,33 +472,36 @@ Please be careful that the size of the request exceed the limit.
```
- Search.MultiRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |requests| repeated(Array[Request]) | | \* | the search request list |
+
+ | field | type | label | required | desc. |
+ | :------: | :----------------------- | :---- | :------: | :---------------------- |
+ | requests | repeated(Array[Request]) | | \* | the search request list |
- Search.Request
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.|
- |config|Config| | \* | the configuration of the search request |
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------ |
+ | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. |
+ | config | Config | | \* | the configuration of the search request |
- Search.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |request_id|string| | | unique request ID |
- |num|uint32| | \* | the maximum number of result to be returned |
- |radius|float| | \* | the search radius |
- |epsilon|float| | \* | the search coefficient (default value is `0.1`) |
- |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) |
- |ingress_filters|Filter.Config| | | Ingress Filter configuration |
- |egress_filters|Filter.Config| | | Egress Filter configuration |
- |min_num| uint32 | | the minimum number of result to be returned |
+
+ | field | type | label | required | desc. |
+ | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- |
+ | request_id | string | | | unique request ID |
+ | num | uint32 | | \* | the maximum number of result to be returned |
+ | radius | float | | \* | the search radius |
+ | epsilon | float | | \* | the search coefficient (default value is `0.1`) |
+ | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
+ | ingress_filters | Filter.Config | | | Ingress Filter configuration |
+ | egress_filters | Filter.Config | | | Egress Filter configuration |
+ | min_num | uint32 | | the minimum number of result to be returned |
### Output
- the scheme of `payload.v1.Search.Responses`.
- ```bash
+ ```rpc
message Search {
message Responses {
repeated Response responses = 1;
@@ -501,21 +522,24 @@ Please be careful that the size of the request exceed the limit.
```
- Search.Responses
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |responses| Response | repeated(Array[Response]) | the list of search results response |
+
+ | field | type | label | desc. |
+ | :-------: | :------- | :------------------------ | :---------------------------------- |
+ | responses | Response | repeated(Array[Response]) | the list of search results response |
- Search.Response
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |request_id|string| | the unique request ID |
- |results|Object.Distance| repeated(Array[Object.Distance]) | search results |
+
+ | field | type | label | desc. |
+ | :--------: | :-------------- | :------------------------------- | :-------------------- |
+ | request_id | string | | the unique request ID |
+ | results | Object.Distance | repeated(Array[Object.Distance]) | search results |
- Object.Distance
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the vector ID |
- |distance|float| | the distance between result vector and request vector |
+
+ | field | type | label | desc. |
+ | :------: | :----- | :---- | :---------------------------------------------------- |
+ | id | string | | the vector ID |
+ | distance | float | | the distance between result vector and request vector |
### Status Code
@@ -539,7 +563,7 @@ Please be careful that the size of the request exceed the limit.
- the scheme of `payload.v1.Search.MultiIDRequest stream`
- ```bash
+ ```rpc
message Search {
message MultiIDRequest {
@@ -564,33 +588,36 @@ Please be careful that the size of the request exceed the limit.
```
- Search.MultiIDRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |requests|IDRequest| repeated(Array[IDRequest]) | \* | the searchByID request list |
+
+ | field | type | label | required | desc. |
+ | :------: | :-------- | :------------------------- | :------: | :-------------------------- |
+ | requests | IDRequest | repeated(Array[IDRequest]) | \* | the searchByID request list |
- Search.IDRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the vector ID to be searched |
- |config|Config| | \* | the configuration of the search request |
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :---- | :------: | :-------------------------------------- |
+ | id | string | | \* | the vector ID to be searched |
+ | config | Config | | \* | the configuration of the search request |
- Search.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |request_id|string| | | unique request ID |
- |num|uint32| | \* | the maximum number of result to be returned |
- |radius|float| | \* | the search radius |
- |epsilon|float| | \* | the search coefficient (default value is `0.1`) |
- |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) |
- |ingress_filters|Filter.Config| | | Ingress Filter configuration |
- |egress_filters|Filter.Config| | | Egress Filter configuration |
- |min_num| uint32 | | the minimum number of result to be returned |
+
+ | field | type | label | required | desc. |
+ | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- |
+ | request_id | string | | | unique request ID |
+ | num | uint32 | | \* | the maximum number of result to be returned |
+ | radius | float | | \* | the search radius |
+ | epsilon | float | | \* | the search coefficient (default value is `0.1`) |
+ | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
+ | ingress_filters | Filter.Config | | | Ingress Filter configuration |
+ | egress_filters | Filter.Config | | | Egress Filter configuration |
+ | min_num | uint32 | | the minimum number of result to be returned |
### Output
- the scheme of `payload.v1.Search.Responses`.
- ```bash
+ ```rpc
message Search {
message Responses {
repeated Response responses = 1;
@@ -611,21 +638,24 @@ Please be careful that the size of the request exceed the limit.
```
- Search.Responses
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |responses| Response | repeated(Array[Response]) | the list of search results response |
+
+ | field | type | label | desc. |
+ | :-------: | :------- | :------------------------ | :---------------------------------- |
+ | responses | Response | repeated(Array[Response]) | the list of search results response |
- Search.Response
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |request_id|string| | the unique request ID |
- |results|Object.Distance| repeated(Array[Object.Distance]) | search results |
+
+ | field | type | label | desc. |
+ | :--------: | :-------------- | :------------------------------- | :-------------------- |
+ | request_id | string | | the unique request ID |
+ | results | Object.Distance | repeated(Array[Object.Distance]) | search results |
- Object.Distance
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the vector ID |
- |distance|float| | the distance between result vector and request vector |
+
+ | field | type | label | desc. |
+ | :------: | :----- | :---- | :---------------------------------------------------- |
+ | id | string | | the vector ID |
+ | distance | float | | the distance between result vector and request vector |
### Status Code
@@ -644,7 +674,7 @@ LinearSearch RPC is the method to linear search vector(s) similar to request vec
- the scheme of `payload.v1.Search.Request`
- ```bash
+ ```rpc
message Search {
message Request {
repeated float vector = 1 [ (validate.rules).repeated .min_items = 2 ];
@@ -662,26 +692,28 @@ LinearSearch RPC is the method to linear search vector(s) similar to request vec
```
- Search.Request
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.|
- |config|Config| | \* | the configuration of the search request |
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------ |
+ | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. |
+ | config | Config | | \* | the configuration of the search request |
- Search.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |request_id|string| | | unique request ID |
- |num|uint32| | \* | the maximum number of result to be returned |
- |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) |
- |ingress_filters|Filter.Config| | | Ingress Filter configuration |
- |egress_filters|Filter.Config| | | Egress Filter configuration |
- |min_num| uint32 | | the minimum number of result to be returned |
+
+ | field | type | label | required | desc. |
+ | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- |
+ | request_id | string | | | unique request ID |
+ | num | uint32 | | \* | the maximum number of result to be returned |
+ | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
+ | ingress_filters | Filter.Config | | | Ingress Filter configuration |
+ | egress_filters | Filter.Config | | | Egress Filter configuration |
+ | min_num | uint32 | | the minimum number of result to be returned |
### Output
- the scheme of `payload.v1.Search.Response`.
- ```bash
+ ```rpc
message Search {
message Response {
string request_id = 1;
@@ -698,16 +730,18 @@ LinearSearch RPC is the method to linear search vector(s) similar to request vec
```
- Search.Response
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |request_id|string| | the unique request ID |
- |results|Object.Distance| repeated(Array[Object.Distance]) | search results |
+
+ | field | type | label | desc. |
+ | :--------: | :-------------- | :------------------------------- | :-------------------- |
+ | request_id | string | | the unique request ID |
+ | results | Object.Distance | repeated(Array[Object.Distance]) | search results |
- Object.Distance
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the vector ID |
- |distance|float| | the distance between result vector and request vector |
+
+ | field | type | label | desc. |
+ | :------: | :----- | :---- | :---------------------------------------------------- |
+ | id | string | | the vector ID |
+ | distance | float | | the distance between result vector and request vector |
### Status Code
@@ -728,7 +762,7 @@ If the vector doesn't be stored, you will get a `NOT_FOUND` error as a result.
- the scheme of `payload.v1.Search.IDRequest`
- ```bash
+ ```rpc
message Search {
message IDRequest {
string id = 1;
@@ -746,26 +780,28 @@ If the vector doesn't be stored, you will get a `NOT_FOUND` error as a result.
```
- Search.IDRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the vector ID to be searched |
- |config|Config| | \* | the configuration of the search request |
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :---- | :------: | :-------------------------------------- |
+ | id | string | | \* | the vector ID to be searched |
+ | config | Config | | \* | the configuration of the search request |
- Search.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |request_id|string| | | unique request ID |
- |num|uint32| | \* | the maximum number of result to be returned |
- |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) |
- |ingress_filters|Filter.Config| | | Ingress Filter configuration |
- |egress_filters|Filter.Config| | | Egress Filter configuration |
- |min_num| uint32 | | the minimum number of result to be returned |
+
+ | field | type | label | required | desc. |
+ | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- |
+ | request_id | string | | | unique request ID |
+ | num | uint32 | | \* | the maximum number of result to be returned |
+ | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
+ | ingress_filters | Filter.Config | | | Ingress Filter configuration |
+ | egress_filters | Filter.Config | | | Egress Filter configuration |
+ | min_num | uint32 | | the minimum number of result to be returned |
### Output
- the scheme of `payload.v1.Search.Response`.
- ```bash
+ ```rpc
message Search {
message Response {
string request_id = 1;
@@ -782,16 +818,18 @@ If the vector doesn't be stored, you will get a `NOT_FOUND` error as a result.
```
- Search.Response
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |request_id|string| | the unique request ID |
- |results|Object.Distance| repeated(Array[Object.Distance]) | search results |
+
+ | field | type | label | desc. |
+ | :--------: | :-------------- | :------------------------------- | :-------------------- |
+ | request_id | string | | the unique request ID |
+ | results | Object.Distance | repeated(Array[Object.Distance]) | search results |
- Object.Distance
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the vector ID |
- |distance|float| | the distance between result vector and request vector |
+
+ | field | type | label | desc. |
+ | :------: | :----- | :---- | :---------------------------------------------------- |
+ | id | string | | the vector ID |
+ | distance | float | | the distance between result vector and request vector |
### Status Code
@@ -812,7 +850,7 @@ Each LinearSearch request and response are independent.
- the scheme of `payload.v1.Search.Request stream`
- ```bash
+ ```rpc
message Search {
message Request {
repeated float vector = 1 [ (validate.rules).repeated .min_items = 2 ];
@@ -830,26 +868,28 @@ Each LinearSearch request and response are independent.
```
- Search.Request
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.|
- |config|Config| | \* | the configuration of the search request |
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------ |
+ | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. |
+ | config | Config | | \* | the configuration of the search request |
- Search.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |request_id|string| | | unique request ID |
- |num|uint32| | \* | the maximum number of result to be returned |
- |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) |
- |ingress_filters|Filter.Config| | | Ingress Filter configuration |
- |egress_filters|Filter.Config| | | Egress Filter configuration |
- |min_num| uint32 | | the minimum number of result to be returned |
+
+ | field | type | label | required | desc. |
+ | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- |
+ | request_id | string | | | unique request ID |
+ | num | uint32 | | \* | the maximum number of result to be returned |
+ | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
+ | ingress_filters | Filter.Config | | | Ingress Filter configuration |
+ | egress_filters | Filter.Config | | | Egress Filter configuration |
+ | min_num | uint32 | | the minimum number of result to be returned |
### Output
- the scheme of `payload.v1.Search.StreamResponse`.
- ```bash
+ ```rpc
message Search {
message StreamResponse {
oneof payload {
@@ -873,22 +913,25 @@ Each LinearSearch request and response are independent.
```
- Search.StreamResponse
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |response|Response| | the search result response |
- |status|google.rpc.Status| | the status of google RPC |
+
+ | field | type | label | desc. |
+ | :------: | :---------------- | :---- | :------------------------- |
+ | response | Response | | the search result response |
+ | status | google.rpc.Status | | the status of google RPC |
- Search.Response
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |request_id|string| | the unique request ID |
- |results|Object.Distance| repeated(Array[Object.Distance]) | search results |
+
+ | field | type | label | desc. |
+ | :--------: | :-------------- | :------------------------------- | :-------------------- |
+ | request_id | string | | the unique request ID |
+ | results | Object.Distance | repeated(Array[Object.Distance]) | search results |
- Object.Distance
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the vector ID |
- |distance|float| | the distance between result vector and request vector |
+
+ | field | type | label | desc. |
+ | :------: | :----- | :---- | :---------------------------------------------------- |
+ | id | string | | the vector ID |
+ | distance | float | | the distance between result vector and request vector |
### Status Code
@@ -909,7 +952,7 @@ Each LinearSearchByID request and response are independent.
- the scheme of `payload.v1.Search.IDRequest stream`
- ```bash
+ ```rpc
message Search {
message IDRequest {
string id = 1;
@@ -927,26 +970,28 @@ Each LinearSearchByID request and response are independent.
```
- Search.IDRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the vector ID to be searched |
- |config|Config| | \* | the configuration of the search request |
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :---- | :------: | :-------------------------------------- |
+ | id | string | | \* | the vector ID to be searched |
+ | config | Config | | \* | the configuration of the search request |
- Search.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |request_id|string| | | unique request ID |
- |num|uint32| | \* | the maximum number of result to be returned |
- |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) |
- |ingress_filters|Filter.Config| | | Ingress Filter configuration |
- |egress_filters|Filter.Config| | | Egress Filter configuration |
- |min_num| uint32 | | the minimum number of result to be returned |
+
+ | field | type | label | required | desc. |
+ | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- |
+ | request_id | string | | | unique request ID |
+ | num | uint32 | | \* | the maximum number of result to be returned |
+ | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
+ | ingress_filters | Filter.Config | | | Ingress Filter configuration |
+ | egress_filters | Filter.Config | | | Egress Filter configuration |
+ | min_num | uint32 | | the minimum number of result to be returned |
### Output
- the scheme of `payload.v1.Search.StreamResponse`.
- ```bash
+ ```rpc
message Search {
message StreamResponse {
oneof payload {
@@ -970,22 +1015,25 @@ Each LinearSearchByID request and response are independent.
```
- Search.StreamResponse
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |response|Response| | the search result response |
- |status|google.rpc.Status| | the status of google RPC |
+
+ | field | type | label | desc. |
+ | :------: | :---------------- | :---- | :------------------------- |
+ | response | Response | | the search result response |
+ | status | google.rpc.Status | | the status of google RPC |
- Search.Response
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |request_id|string| | the unique request ID |
- |results|Object.Distance| repeated(Array[Object.Distance]) | search results |
+
+ | field | type | label | desc. |
+ | :--------: | :-------------- | :------------------------------- | :-------------------- |
+ | request_id | string | | the unique request ID |
+ | results | Object.Distance | repeated(Array[Object.Distance]) | search results |
- Object.Distance
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the vector ID |
- |distance|float| | the distance between result vector and request vector |
+
+ | field | type | label | desc. |
+ | :------: | :----- | :---- | :---------------------------------------------------- |
+ | id | string | | the vector ID |
+ | distance | float | | the distance between result vector and request vector |
### Status Code
@@ -1009,7 +1057,7 @@ Please be careful that the size of the request exceed the limit.
- the scheme of `payload.v1.Search.MultiRequest`
- ```bash
+ ```rpc
message Search {
message MultiRequest {
repeated Request requests = 1;
@@ -1031,31 +1079,34 @@ Please be careful that the size of the request exceed the limit.
```
- Search.MultiRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |requests| repeated(Array[Request]) | | \* | the search request list |
+
+ | field | type | label | required | desc. |
+ | :------: | :----------------------- | :---- | :------: | :---------------------- |
+ | requests | repeated(Array[Request]) | | \* | the search request list |
- Search.Request
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.|
- |config|Config| | \* | the configuration of the search request |
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------ |
+ | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. |
+ | config | Config | | \* | the configuration of the search request |
- Search.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |request_id|string| | | unique request ID |
- |num|uint32| | \* | the maximum number of result to be returned |
- |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) |
- |ingress_filters|Filter.Config| | | Ingress Filter configuration |
- |egress_filters|Filter.Config| | | Egress Filter configuration |
- |min_num| uint32 | | the minimum number of result to be returned |
+
+ | field | type | label | required | desc. |
+ | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- |
+ | request_id | string | | | unique request ID |
+ | num | uint32 | | \* | the maximum number of result to be returned |
+ | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
+ | ingress_filters | Filter.Config | | | Ingress Filter configuration |
+ | egress_filters | Filter.Config | | | Egress Filter configuration |
+ | min_num | uint32 | | the minimum number of result to be returned |
### Output
- the scheme of `payload.v1.Search.Responses`.
- ```bash
+ ```rpc
message Search {
message Responses {
repeated Response responses = 1;
@@ -1076,21 +1127,24 @@ Please be careful that the size of the request exceed the limit.
```
- Search.Responses
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |responses| Response | repeated(Array[Response]) | the list of search results response |
+
+ | field | type | label | desc. |
+ | :-------: | :------- | :------------------------ | :---------------------------------- |
+ | responses | Response | repeated(Array[Response]) | the list of search results response |
- Search.Response
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |request_id|string| | the unique request ID |
- |results|Object.Distance| repeated(Array[Object.Distance]) | search results |
+
+ | field | type | label | desc. |
+ | :--------: | :-------------- | :------------------------------- | :-------------------- |
+ | request_id | string | | the unique request ID |
+ | results | Object.Distance | repeated(Array[Object.Distance]) | search results |
- Object.Distance
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the vector ID |
- |distance|float| | the distance between result vector and request vector |
+
+ | field | type | label | desc. |
+ | :------: | :----- | :---- | :---------------------------------------------------- |
+ | id | string | | the vector ID |
+ | distance | float | | the distance between result vector and request vector |
### Status Code
@@ -1114,7 +1168,7 @@ Please be careful that the size of the request exceed the limit.
- the scheme of `payload.v1.Search.MultiIDRequest stream`
- ```bash
+ ```rpc
message Search {
message MultiIDRequest {
@@ -1137,31 +1191,34 @@ Please be careful that the size of the request exceed the limit.
```
- Search.MultiIDRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |requests|IDRequest| repeated(Array[IDRequest]) | \* | the searchByID request list |
+
+ | field | type | label | required | desc. |
+ | :------: | :-------- | :------------------------- | :------: | :-------------------------- |
+ | requests | IDRequest | repeated(Array[IDRequest]) | \* | the searchByID request list |
- Search.IDRequest
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |id|string| | \* | the vector ID to be searched.|
- |config|Config| | \* | the configuration of the search request |
+
+ | field | type | label | required | desc. |
+ | :----: | :----- | :---- | :------: | :-------------------------------------- |
+ | id | string | | \* | the vector ID to be searched. |
+ | config | Config | | \* | the configuration of the search request |
- Search.Config
- |field|type|label|required|desc.|
- |:---:|:---|:---|:---:|:---|
- |request_id|string| | | unique request ID |
- |num|uint32| | \* | the maximum number of result to be returned |
- |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) |
- |ingress_filters|Filter.Config| | | Ingress Filter configuration |
- |egress_filters|Filter.Config| | | Egress Filter configuration |
- |min_num| uint32 | | the minimum number of result to be returned |
+
+ | field | type | label | required | desc. |
+ | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- |
+ | request_id | string | | | unique request ID |
+ | num | uint32 | | \* | the maximum number of result to be returned |
+ | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
+ | ingress_filters | Filter.Config | | | Ingress Filter configuration |
+ | egress_filters | Filter.Config | | | Egress Filter configuration |
+ | min_num | uint32 | | the minimum number of result to be returned |
### Output
- the scheme of `payload.v1.Search.Responses`.
- ```bash
+ ```rpc
message Search {
message Responses {
repeated Response responses = 1;
@@ -1182,21 +1239,24 @@ Please be careful that the size of the request exceed the limit.
```
- Search.Responses
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |responses| Response | repeated(Array[Response]) | the list of search results response |
+
+ | field | type | label | desc. |
+ | :-------: | :------- | :------------------------ | :---------------------------------- |
+ | responses | Response | repeated(Array[Response]) | the list of search results response |
- Search.Response
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |request_id|string| | the unique request ID |
- |results|Object.Distance| repeated(Array[Object.Distance]) | search results |
+
+ | field | type | label | desc. |
+ | :--------: | :-------------- | :------------------------------- | :-------------------- |
+ | request_id | string | | the unique request ID |
+ | results | Object.Distance | repeated(Array[Object.Distance]) | search results |
- Object.Distance
- |field|type|label|desc.|
- |:---:|:---|:---|:---|
- |id|string| | the vector ID |
- |distance|float| | the distance between result vector and request vector |
+
+ | field | type | label | desc. |
+ | :------: | :----- | :---- | :---------------------------------------------------- |
+ | id | string | | the vector ID |
+ | distance | float | | the distance between result vector and request vector |
### Status Code
diff --git a/docs/api/status.md b/docs/api/status.md
new file mode 100644
index 0000000000..a0ef403661
--- /dev/null
+++ b/docs/api/status.md
@@ -0,0 +1,113 @@
+# Response Status Code
+
+This page describes each status code from the API response.
+
+## Status Codes
+
+This table shows the main status code and its name using Vald.
+The sections below describe the meaning of each code and why API returns.
+
+| code | name |
+| :--: | :---------------------------------------- |
+| 0 | [OK](#OK) |
+| 3 | [INVALID_ARGUMENT](#INVALID_ARGUMENT) |
+| 4 | [DEADLINE_EXCEEDED](#DEADLINE_EXCEEDED) |
+| 5 | [NOT_FOUND](#NOT_FOUND) |
+| 6 | [ALREADY_EXISTS](#ALREADY_EXISTS) |
+| 8 | [RESOURCE_EXHAUSTED](#RESOURCE_EXHAUSTED) |
+| 13 | [INTERNAL](#INTERNAL) |
+| 14 | [UNAVAILABLE](#UNAVAILABLE) |
+
+## OK
+
+`OK` means complete process with success.
+
+Services that return this code are all services.
+
+## INVALID_ARGUMENT
+
+`INVALID_ARGUMENT` means something wrong in the request argument.
+
+Services that return status are all services.
+If you get this code, please verify your request payload is correct.
+
+## DEADLINE_EXCEEDED
+
+`DEADLINE_EXCEEDED` returns when the process ends due to timeout.
+
+Services that return status are:
+
+- [Object Service(only Exists RPC)](../api/object.md#Exists-RPC)
+- [Insert Service](../api/insert.md)
+- [Remove Service](../api/insert.md)
+- [Search Service](../api/search.md)
+
+The timeout configuration is on the Vald cluster side.
+If it appears constantly, you need to review the cluster settings.
+However, only when using a search service can you overwrite the timeout configuration by lengthening the time setting in the search request config.
+
+## NOT_FOUND
+
+`NOT_FOUND` appears when there is no result corresponding to the request.
+
+The example cases are:
+
+- No search result when using SearchById RPC.
+- No index data corresponding to the request vector when using Update/Exists/GetObject RPC
+
+Services that return status are:
+
+- [Object Service](../api/object.md)
+- [Update Service](../api/update.md)
+- [Remove Service](../api/insert.md)
+- [Search Service](../api/search.md)
+
+The possible reasons are:
+
+- There is no index data in Vald Agent components or running the indexing process in the Vald Agent components.
+ When the Vald Agent component runs the indexing process (createIndex/saveIndex), any process won't run, and it will return with no result.
+- The request query vector or ID is wrong when using the search/update/remove service.
+ Notably, both update service and remove service require the ID of vector Vald Agent component already indexed.
+
+## ALREADY_EXISTS
+
+`ALREADY_EXISTS` means that the Vald Agent component already stores the vector index same as the query vector when set `skip_strict_exist_check` as `true` in request config.
+
+Services that return status are:
+
+- [Insert Service](../api/insert.md)
+- [Update Service](../api/update.md)
+
+You have to change the query vector with `skip_strict_exist_check` as `true` or set `skip_strict_exist_check` as `false` instead of changing the query vector.
+
+## RESOURCE_EXHAUSTED
+
+`RESOURCE_EXHAUSTED` means the some resources has been exhausted.
+
+It appears when:
+
+- There is out-of-memory in gRPC payload, or networks, or etc.
+- There are some server overload situations.
+- The sent or received message is larger than the configured limit (default is 4 MB).
+
+Services that return status are all services.
+The most case in the Vald is that the query vector is too large.
+In other words, the vector dimension size in configuration is too large.
+
+## INTERNAL
+
+`INTERNAL` appears when some wrong happens in the Vald cluster.
+It is there is the serious problems about the Vald cluster.
+
+Services that return status are all services.
+If you get it, please verify the state of the Vald cluster.
+
+