mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-07-12 03:12:11 +02:00
56 lines
1.7 KiB
Protocol Buffer
56 lines
1.7 KiB
Protocol Buffer
|
|
// SPDX-License-Identifier: Apache-2.0
|
||
|
|
// SPDX-FileCopyrightText: Copyright The Lance Authors
|
||
|
|
|
||
|
|
syntax = "proto3";
|
||
|
|
|
||
|
|
package lance.pb;
|
||
|
|
|
||
|
|
import "table_identifier.proto";
|
||
|
|
import "table.proto";
|
||
|
|
import "index.proto";
|
||
|
|
|
||
|
|
// Serialized vector query parameters.
|
||
|
|
message VectorQueryProto {
|
||
|
|
// Query vector as Arrow IPC bytes (supports Float16, Float32, Float64, UInt8, etc.)
|
||
|
|
bytes query_vector_arrow_ipc = 1;
|
||
|
|
string column = 2;
|
||
|
|
uint32 k = 3;
|
||
|
|
optional float lower_bound = 4;
|
||
|
|
optional float upper_bound = 5;
|
||
|
|
optional uint32 minimum_nprobes = 6;
|
||
|
|
optional uint32 maximum_nprobes = 7;
|
||
|
|
optional uint32 ef = 8;
|
||
|
|
optional uint32 refine_factor = 9;
|
||
|
|
// Distance metric type. Absent means None (use the index's default metric).
|
||
|
|
optional lance.index.pb.VectorMetricType metric_type = 10;
|
||
|
|
bool use_index = 11;
|
||
|
|
optional float dist_q_c = 12;
|
||
|
|
optional int32 query_parallelism = 13;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Serializable form of ANNIvfSubIndexExec — the IVF sub-index search node.
|
||
|
|
//
|
||
|
|
// The prefilter child ExecutionPlan is serialized by DataFusion's codec
|
||
|
|
// automatically via children() / with_new_children(). The prefilter_type
|
||
|
|
// field tells the decoder which PreFilterSource variant to use when
|
||
|
|
// reconstructing from the deserialized child inputs.
|
||
|
|
message ANNIvfSubIndexExecProto {
|
||
|
|
enum PreFilterType {
|
||
|
|
NONE = 0;
|
||
|
|
FILTERED_ROW_IDS = 1;
|
||
|
|
SCALAR_INDEX_QUERY = 2;
|
||
|
|
}
|
||
|
|
|
||
|
|
VectorQueryProto query = 1;
|
||
|
|
lance.datafusion.TableIdentifier table = 2;
|
||
|
|
repeated lance.table.IndexMetadata indices = 3;
|
||
|
|
PreFilterType prefilter_type = 4;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Serializable form of ANNIvfPartitionExec — the IVF centroid routing node.
|
||
|
|
message ANNIvfPartitionExecProto {
|
||
|
|
VectorQueryProto query = 1;
|
||
|
|
lance.datafusion.TableIdentifier table = 2;
|
||
|
|
repeated string index_uuids = 3;
|
||
|
|
}
|