1#![allow(non_camel_case_types, non_upper_case_globals)]
14
15use std::os::raw::{c_char, c_int, c_void};
16
17#[repr(C)]
24pub struct zvec_collection_t {
25 _private: [u8; 0],
26}
27
28#[repr(C)]
31pub struct zvec_collection_schema_t {
32 _private: [u8; 0],
33}
34
35#[repr(C)]
38pub struct zvec_field_schema_t {
39 _private: [u8; 0],
40}
41
42#[repr(C)]
45pub struct zvec_index_params_t {
46 _private: [u8; 0],
47}
48
49#[repr(C)]
52pub struct zvec_doc_t {
53 _private: [u8; 0],
54}
55
56#[repr(C)]
59pub struct zvec_vector_query_t {
60 _private: [u8; 0],
61}
62
63#[repr(C)]
66pub struct zvec_group_by_vector_query_t {
67 _private: [u8; 0],
68}
69
70#[repr(C)]
73pub struct zvec_collection_options_t {
74 _private: [u8; 0],
75}
76
77#[repr(C)]
80pub struct zvec_collection_stats_t {
81 _private: [u8; 0],
82}
83
84#[repr(C)]
87pub struct zvec_config_data_t {
88 _private: [u8; 0],
89}
90
91#[repr(C)]
94pub struct zvec_log_config_t {
95 _private: [u8; 0],
96}
97
98#[repr(C)]
101pub struct zvec_hnsw_query_params_t {
102 _private: [u8; 0],
103}
104
105#[repr(C)]
108pub struct zvec_ivf_query_params_t {
109 _private: [u8; 0],
110}
111
112#[repr(C)]
115pub struct zvec_flat_query_params_t {
116 _private: [u8; 0],
117}
118
119#[repr(C)]
122pub struct zvec_vamana_query_params_t {
123 _private: [u8; 0],
124}
125
126#[repr(C)]
129pub struct zvec_diskann_query_params_t {
130 _private: [u8; 0],
131}
132
133#[repr(C)]
136pub struct zvec_fts_query_params_t {
137 _private: [u8; 0],
138}
139
140#[repr(C)]
143pub struct zvec_fts_t {
144 _private: [u8; 0],
145}
146
147#[repr(C)]
150pub struct zvec_multi_query_t {
151 _private: [u8; 0],
152}
153
154#[repr(C)]
157pub struct zvec_sub_query_t {
158 _private: [u8; 0],
159}
160
161pub type zvec_error_code_t = u32;
167pub type zvec_data_type_t = u32;
169pub type zvec_index_type_t = u32;
171pub type zvec_metric_type_t = u32;
173pub type zvec_quantize_type_t = u32;
175pub type zvec_log_level_t = u32;
177pub type zvec_log_type_t = u32;
179pub type zvec_doc_operator_t = u32;
181
182pub const ZVEC_OK: zvec_error_code_t = 0;
188pub const ZVEC_ERROR_NOT_FOUND: zvec_error_code_t = 1;
190pub const ZVEC_ERROR_ALREADY_EXISTS: zvec_error_code_t = 2;
192pub const ZVEC_ERROR_INVALID_ARGUMENT: zvec_error_code_t = 3;
194pub const ZVEC_ERROR_PERMISSION_DENIED: zvec_error_code_t = 4;
196pub const ZVEC_ERROR_FAILED_PRECONDITION: zvec_error_code_t = 5;
198pub const ZVEC_ERROR_RESOURCE_EXHAUSTED: zvec_error_code_t = 6;
200pub const ZVEC_ERROR_UNAVAILABLE: zvec_error_code_t = 7;
202pub const ZVEC_ERROR_INTERNAL_ERROR: zvec_error_code_t = 8;
204pub const ZVEC_ERROR_NOT_SUPPORTED: zvec_error_code_t = 9;
206pub const ZVEC_ERROR_UNKNOWN: zvec_error_code_t = 10;
208
209pub const ZVEC_DATA_TYPE_UNDEFINED: zvec_data_type_t = 0;
215pub const ZVEC_DATA_TYPE_BINARY: zvec_data_type_t = 1;
217pub const ZVEC_DATA_TYPE_STRING: zvec_data_type_t = 2;
219pub const ZVEC_DATA_TYPE_BOOL: zvec_data_type_t = 3;
221pub const ZVEC_DATA_TYPE_INT32: zvec_data_type_t = 4;
223pub const ZVEC_DATA_TYPE_INT64: zvec_data_type_t = 5;
225pub const ZVEC_DATA_TYPE_UINT32: zvec_data_type_t = 6;
227pub const ZVEC_DATA_TYPE_UINT64: zvec_data_type_t = 7;
229pub const ZVEC_DATA_TYPE_FLOAT: zvec_data_type_t = 8;
231pub const ZVEC_DATA_TYPE_DOUBLE: zvec_data_type_t = 9;
233pub const ZVEC_DATA_TYPE_VECTOR_BINARY32: zvec_data_type_t = 20;
235pub const ZVEC_DATA_TYPE_VECTOR_BINARY64: zvec_data_type_t = 21;
237pub const ZVEC_DATA_TYPE_VECTOR_FP16: zvec_data_type_t = 22;
239pub const ZVEC_DATA_TYPE_VECTOR_FP32: zvec_data_type_t = 23;
241pub const ZVEC_DATA_TYPE_VECTOR_FP64: zvec_data_type_t = 24;
243pub const ZVEC_DATA_TYPE_VECTOR_INT4: zvec_data_type_t = 25;
245pub const ZVEC_DATA_TYPE_VECTOR_INT8: zvec_data_type_t = 26;
247pub const ZVEC_DATA_TYPE_VECTOR_INT16: zvec_data_type_t = 27;
249pub const ZVEC_DATA_TYPE_SPARSE_VECTOR_FP16: zvec_data_type_t = 30;
251pub const ZVEC_DATA_TYPE_SPARSE_VECTOR_FP32: zvec_data_type_t = 31;
253pub const ZVEC_DATA_TYPE_ARRAY_BINARY: zvec_data_type_t = 40;
255pub const ZVEC_DATA_TYPE_ARRAY_STRING: zvec_data_type_t = 41;
257pub const ZVEC_DATA_TYPE_ARRAY_BOOL: zvec_data_type_t = 42;
259pub const ZVEC_DATA_TYPE_ARRAY_INT32: zvec_data_type_t = 43;
261pub const ZVEC_DATA_TYPE_ARRAY_INT64: zvec_data_type_t = 44;
263pub const ZVEC_DATA_TYPE_ARRAY_UINT32: zvec_data_type_t = 45;
265pub const ZVEC_DATA_TYPE_ARRAY_UINT64: zvec_data_type_t = 46;
267pub const ZVEC_DATA_TYPE_ARRAY_FLOAT: zvec_data_type_t = 47;
269pub const ZVEC_DATA_TYPE_ARRAY_DOUBLE: zvec_data_type_t = 48;
271
272pub const ZVEC_INDEX_TYPE_UNDEFINED: zvec_index_type_t = 0;
278pub const ZVEC_INDEX_TYPE_HNSW: zvec_index_type_t = 1;
280pub const ZVEC_INDEX_TYPE_IVF: zvec_index_type_t = 2;
282pub const ZVEC_INDEX_TYPE_FLAT: zvec_index_type_t = 3;
284pub const ZVEC_INDEX_TYPE_HNSW_RABITQ: zvec_index_type_t = 4;
286pub const ZVEC_INDEX_TYPE_DISKANN: zvec_index_type_t = 5;
288pub const ZVEC_INDEX_TYPE_VAMANA: zvec_index_type_t = 6;
290pub const ZVEC_INDEX_TYPE_INVERT: zvec_index_type_t = 10;
292pub const ZVEC_INDEX_TYPE_FTS: zvec_index_type_t = 11;
294
295pub const ZVEC_METRIC_TYPE_UNDEFINED: zvec_metric_type_t = 0;
301pub const ZVEC_METRIC_TYPE_L2: zvec_metric_type_t = 1;
303pub const ZVEC_METRIC_TYPE_IP: zvec_metric_type_t = 2;
305pub const ZVEC_METRIC_TYPE_COSINE: zvec_metric_type_t = 3;
307pub const ZVEC_METRIC_TYPE_MIPSL2: zvec_metric_type_t = 4;
309
310pub const ZVEC_QUANTIZE_TYPE_UNDEFINED: zvec_quantize_type_t = 0;
316pub const ZVEC_QUANTIZE_TYPE_FP16: zvec_quantize_type_t = 1;
318pub const ZVEC_QUANTIZE_TYPE_INT8: zvec_quantize_type_t = 2;
320pub const ZVEC_QUANTIZE_TYPE_INT4: zvec_quantize_type_t = 3;
322
323pub const ZVEC_LOG_LEVEL_DEBUG: zvec_log_level_t = 0;
329pub const ZVEC_LOG_LEVEL_INFO: zvec_log_level_t = 1;
331pub const ZVEC_LOG_LEVEL_WARN: zvec_log_level_t = 2;
333pub const ZVEC_LOG_LEVEL_ERROR: zvec_log_level_t = 3;
335pub const ZVEC_LOG_LEVEL_FATAL: zvec_log_level_t = 4;
337
338pub const ZVEC_LOG_TYPE_CONSOLE: zvec_log_type_t = 0;
344pub const ZVEC_LOG_TYPE_FILE: zvec_log_type_t = 1;
346
347pub const ZVEC_DOC_OP_INSERT: zvec_doc_operator_t = 0;
353pub const ZVEC_DOC_OP_UPDATE: zvec_doc_operator_t = 1;
355pub const ZVEC_DOC_OP_UPSERT: zvec_doc_operator_t = 2;
357pub const ZVEC_DOC_OP_DELETE: zvec_doc_operator_t = 3;
359
360#[repr(C)]
366pub struct zvec_string_view_t {
367 pub data: *const c_char,
368 pub length: usize,
369}
370
371#[repr(C)]
373pub struct zvec_string_t {
374 pub data: *mut c_char,
375 pub length: usize,
376 pub capacity: usize,
377}
378
379#[repr(C)]
381pub struct zvec_string_array_t {
382 pub strings: *mut zvec_string_t,
383 pub count: usize,
384}
385
386#[repr(C)]
388pub struct zvec_float_array_t {
389 pub data: *const f32,
390 pub length: usize,
391}
392
393#[repr(C)]
395pub struct zvec_int64_array_t {
396 pub data: *const i64,
397 pub length: usize,
398}
399
400#[repr(C)]
402pub struct zvec_byte_array_t {
403 pub data: *const u8,
404 pub length: usize,
405}
406
407#[repr(C)]
409pub struct zvec_mutable_byte_array_t {
410 pub data: *mut u8,
411 pub length: usize,
412 pub capacity: usize,
413}
414
415#[repr(C)]
417pub struct zvec_write_result_t {
418 pub code: zvec_error_code_t,
419 pub message: *const c_char,
420}
421
422#[repr(C)]
424pub struct zvec_error_details_t {
425 pub code: zvec_error_code_t,
426 pub message: *const c_char,
427 pub file: *const c_char,
428 pub line: c_int,
429 pub function: *const c_char,
430}
431
432extern "C" {
437 pub fn zvec_get_version() -> *const c_char;
442 pub fn zvec_check_version(major: c_int, minor: c_int, patch: c_int) -> bool;
443 pub fn zvec_get_version_major() -> c_int;
444 pub fn zvec_get_version_minor() -> c_int;
445 pub fn zvec_get_version_patch() -> c_int;
446
447 pub fn zvec_get_last_error_details(
452 error_details: *mut zvec_error_details_t,
453 ) -> zvec_error_code_t;
454 pub fn zvec_get_last_error(error_msg: *mut *mut c_char) -> zvec_error_code_t;
455 pub fn zvec_clear_error();
456 pub fn zvec_error_code_to_string(error_code: zvec_error_code_t) -> *const c_char;
457
458 pub fn zvec_string_create(str: *const c_char) -> *mut zvec_string_t;
463 pub fn zvec_string_create_from_view(view: *const zvec_string_view_t) -> *mut zvec_string_t;
464 pub fn zvec_bin_create(data: *const u8, length: usize) -> *mut zvec_string_t;
465 pub fn zvec_string_copy(str: *const zvec_string_t) -> *mut zvec_string_t;
466 pub fn zvec_string_c_str(str: *const zvec_string_t) -> *const c_char;
467 pub fn zvec_string_length(str: *const zvec_string_t) -> usize;
468 pub fn zvec_string_compare(str1: *const zvec_string_t, str2: *const zvec_string_t) -> c_int;
469 pub fn zvec_free_string(str: *mut zvec_string_t);
470
471 pub fn zvec_string_array_create(count: usize) -> *mut zvec_string_array_t;
476 pub fn zvec_string_array_add(array: *mut zvec_string_array_t, idx: usize, str: *const c_char);
477 pub fn zvec_string_array_destroy(array: *mut zvec_string_array_t);
478 pub fn zvec_byte_array_create(capacity: usize) -> *mut zvec_mutable_byte_array_t;
479 pub fn zvec_byte_array_destroy(array: *mut zvec_mutable_byte_array_t);
480 pub fn zvec_float_array_create(count: usize) -> *mut zvec_float_array_t;
481 pub fn zvec_float_array_destroy(array: *mut zvec_float_array_t);
482 pub fn zvec_int64_array_create(count: usize) -> *mut zvec_int64_array_t;
483 pub fn zvec_int64_array_destroy(array: *mut zvec_int64_array_t);
484 pub fn zvec_free_uint8_array(array: *mut u8);
485
486 pub fn zvec_malloc(size: usize) -> *mut c_void;
491 pub fn zvec_free(ptr: *mut c_void);
492
493 pub fn zvec_config_log_create_console(level: zvec_log_level_t) -> *mut zvec_log_config_t;
498 pub fn zvec_config_log_create_file(
499 level: zvec_log_level_t,
500 dir: *const c_char,
501 basename: *const c_char,
502 file_size: u32,
503 overdue_days: u32,
504 ) -> *mut zvec_log_config_t;
505 pub fn zvec_config_log_destroy(config: *mut zvec_log_config_t);
506 pub fn zvec_config_log_get_level(config: *const zvec_log_config_t) -> zvec_log_level_t;
507 pub fn zvec_config_log_set_level(
508 config: *mut zvec_log_config_t,
509 level: zvec_log_level_t,
510 ) -> zvec_error_code_t;
511 pub fn zvec_config_log_is_file_type(config: *const zvec_log_config_t) -> bool;
512 pub fn zvec_config_log_get_dir(config: *const zvec_log_config_t) -> *const c_char;
513 pub fn zvec_config_log_set_dir(
514 config: *mut zvec_log_config_t,
515 dir: *const c_char,
516 ) -> zvec_error_code_t;
517 pub fn zvec_config_log_get_basename(config: *const zvec_log_config_t) -> *const c_char;
518 pub fn zvec_config_log_set_basename(
519 config: *mut zvec_log_config_t,
520 basename: *const c_char,
521 ) -> zvec_error_code_t;
522 pub fn zvec_config_log_get_file_size(config: *const zvec_log_config_t) -> u32;
523 pub fn zvec_config_log_set_file_size(
524 config: *mut zvec_log_config_t,
525 file_size: u32,
526 ) -> zvec_error_code_t;
527 pub fn zvec_config_log_get_overdue_days(config: *const zvec_log_config_t) -> u32;
528 pub fn zvec_config_log_set_overdue_days(
529 config: *mut zvec_log_config_t,
530 days: u32,
531 ) -> zvec_error_code_t;
532
533 pub fn zvec_config_data_create() -> *mut zvec_config_data_t;
538 pub fn zvec_config_data_destroy(config: *mut zvec_config_data_t);
539 pub fn zvec_config_data_set_memory_limit(
540 config: *mut zvec_config_data_t,
541 memory_limit_bytes: u64,
542 ) -> zvec_error_code_t;
543 pub fn zvec_config_data_get_memory_limit(config: *const zvec_config_data_t) -> u64;
544 pub fn zvec_config_data_set_log_config(
545 config: *mut zvec_config_data_t,
546 log_config: *mut zvec_log_config_t,
547 ) -> zvec_error_code_t;
548 pub fn zvec_config_data_get_log_type(config: *const zvec_config_data_t) -> zvec_log_type_t;
549 pub fn zvec_config_data_set_query_thread_count(
550 config: *mut zvec_config_data_t,
551 thread_count: u32,
552 ) -> zvec_error_code_t;
553 pub fn zvec_config_data_get_query_thread_count(config: *const zvec_config_data_t) -> u32;
554 pub fn zvec_config_data_set_invert_to_forward_scan_ratio(
555 config: *mut zvec_config_data_t,
556 ratio: f32,
557 ) -> zvec_error_code_t;
558 pub fn zvec_config_data_get_invert_to_forward_scan_ratio(
559 config: *const zvec_config_data_t,
560 ) -> f32;
561 pub fn zvec_config_data_set_brute_force_by_keys_ratio(
562 config: *mut zvec_config_data_t,
563 ratio: f32,
564 ) -> zvec_error_code_t;
565 pub fn zvec_config_data_get_brute_force_by_keys_ratio(config: *const zvec_config_data_t)
566 -> f32;
567 pub fn zvec_config_data_set_fts_brute_force_by_keys_ratio(
568 config: *mut zvec_config_data_t,
569 ratio: f32,
570 ) -> zvec_error_code_t;
571 pub fn zvec_config_data_get_fts_brute_force_by_keys_ratio(
572 config: *const zvec_config_data_t,
573 ) -> f32;
574 pub fn zvec_config_data_set_optimize_thread_count(
575 config: *mut zvec_config_data_t,
576 thread_count: u32,
577 ) -> zvec_error_code_t;
578 pub fn zvec_config_data_get_optimize_thread_count(config: *const zvec_config_data_t) -> u32;
579
580 pub fn zvec_initialize(config: *const zvec_config_data_t) -> zvec_error_code_t;
585 pub fn zvec_shutdown() -> zvec_error_code_t;
586 pub fn zvec_is_initialized() -> bool;
587
588 pub fn zvec_index_params_create(index_type: zvec_index_type_t) -> *mut zvec_index_params_t;
593 pub fn zvec_index_params_destroy(params: *mut zvec_index_params_t);
594 pub fn zvec_index_params_get_type(params: *const zvec_index_params_t) -> zvec_index_type_t;
595 pub fn zvec_index_params_set_metric_type(
596 params: *mut zvec_index_params_t,
597 metric_type: zvec_metric_type_t,
598 ) -> zvec_error_code_t;
599 pub fn zvec_index_params_get_metric_type(
600 params: *const zvec_index_params_t,
601 ) -> zvec_metric_type_t;
602 pub fn zvec_index_params_set_quantize_type(
603 params: *mut zvec_index_params_t,
604 quantize_type: zvec_quantize_type_t,
605 ) -> zvec_error_code_t;
606 pub fn zvec_index_params_get_quantize_type(
607 params: *const zvec_index_params_t,
608 ) -> zvec_quantize_type_t;
609 pub fn zvec_index_params_set_hnsw_params(
610 params: *mut zvec_index_params_t,
611 m: c_int,
612 ef_construction: c_int,
613 ) -> zvec_error_code_t;
614 pub fn zvec_index_params_get_hnsw_m(params: *const zvec_index_params_t) -> c_int;
615 pub fn zvec_index_params_get_hnsw_ef_construction(params: *const zvec_index_params_t) -> c_int;
616 pub fn zvec_index_params_set_ivf_params(
617 params: *mut zvec_index_params_t,
618 n_list: c_int,
619 n_iters: c_int,
620 use_soar: bool,
621 ) -> zvec_error_code_t;
622 pub fn zvec_index_params_get_ivf_params(
623 params: *const zvec_index_params_t,
624 out_n_list: *mut c_int,
625 out_n_iters: *mut c_int,
626 out_use_soar: *mut bool,
627 ) -> zvec_error_code_t;
628 pub fn zvec_index_params_set_vamana_params(
629 params: *mut zvec_index_params_t,
630 max_degree: c_int,
631 search_list_size: c_int,
632 alpha: f32,
633 saturate_graph: bool,
634 use_contiguous_memory: bool,
635 ) -> zvec_error_code_t;
636 pub fn zvec_index_params_get_vamana_params(
637 params: *const zvec_index_params_t,
638 out_max_degree: *mut c_int,
639 out_search_list_size: *mut c_int,
640 out_alpha: *mut f32,
641 out_saturate_graph: *mut bool,
642 out_use_contiguous_memory: *mut bool,
643 ) -> zvec_error_code_t;
644 pub fn zvec_index_params_set_diskann_params(
645 params: *mut zvec_index_params_t,
646 max_degree: c_int,
647 list_size: c_int,
648 pq_chunk_num: c_int,
649 ) -> zvec_error_code_t;
650 pub fn zvec_index_params_get_diskann_max_degree(params: *const zvec_index_params_t) -> c_int;
651 pub fn zvec_index_params_get_diskann_list_size(params: *const zvec_index_params_t) -> c_int;
652 pub fn zvec_index_params_get_diskann_pq_chunk_num(params: *const zvec_index_params_t) -> c_int;
653 pub fn zvec_index_params_set_invert_params(
654 params: *mut zvec_index_params_t,
655 enable_range_opt: bool,
656 enable_wildcard: bool,
657 ) -> zvec_error_code_t;
658 pub fn zvec_index_params_get_invert_params(
659 params: *const zvec_index_params_t,
660 out_enable_range_opt: *mut bool,
661 out_enable_wildcard: *mut bool,
662 ) -> zvec_error_code_t;
663 pub fn zvec_index_params_set_fts_params(
664 params: *mut zvec_index_params_t,
665 tokenizer_name: *const c_char,
666 filters: *const zvec_string_array_t,
667 extra_params: *const c_char,
668 ) -> zvec_error_code_t;
669 pub fn zvec_index_params_get_fts_params(
670 params: *const zvec_index_params_t,
671 out_tokenizer_name: *mut *const c_char,
672 out_filters: *mut *mut zvec_string_array_t,
673 out_extra_params: *mut *const c_char,
674 ) -> zvec_error_code_t;
675
676 pub fn zvec_field_schema_create(
681 name: *const c_char,
682 data_type: zvec_data_type_t,
683 nullable: bool,
684 dimension: u32,
685 ) -> *mut zvec_field_schema_t;
686 pub fn zvec_field_schema_destroy(schema: *mut zvec_field_schema_t);
687 pub fn zvec_field_schema_set_name(
688 schema: *mut zvec_field_schema_t,
689 name: *const c_char,
690 ) -> zvec_error_code_t;
691 pub fn zvec_field_schema_get_name(schema: *const zvec_field_schema_t) -> *const c_char;
692 pub fn zvec_field_schema_get_data_type(schema: *const zvec_field_schema_t) -> zvec_data_type_t;
693 pub fn zvec_field_schema_set_data_type(
694 schema: *mut zvec_field_schema_t,
695 data_type: zvec_data_type_t,
696 ) -> zvec_error_code_t;
697 pub fn zvec_field_schema_get_element_data_type(
698 schema: *const zvec_field_schema_t,
699 ) -> zvec_data_type_t;
700 pub fn zvec_field_schema_get_element_data_size(schema: *const zvec_field_schema_t) -> usize;
701 pub fn zvec_field_schema_is_vector_field(schema: *const zvec_field_schema_t) -> bool;
702 pub fn zvec_field_schema_is_dense_vector(schema: *const zvec_field_schema_t) -> bool;
703 pub fn zvec_field_schema_is_sparse_vector(schema: *const zvec_field_schema_t) -> bool;
704 pub fn zvec_field_schema_is_nullable(schema: *const zvec_field_schema_t) -> bool;
705 pub fn zvec_field_schema_set_nullable(
706 schema: *mut zvec_field_schema_t,
707 nullable: bool,
708 ) -> zvec_error_code_t;
709 pub fn zvec_field_schema_has_invert_index(schema: *const zvec_field_schema_t) -> bool;
710 pub fn zvec_field_schema_is_array_type(schema: *const zvec_field_schema_t) -> bool;
711 pub fn zvec_field_schema_get_dimension(schema: *const zvec_field_schema_t) -> u32;
712 pub fn zvec_field_schema_set_dimension(
713 schema: *mut zvec_field_schema_t,
714 dimension: u32,
715 ) -> zvec_error_code_t;
716 pub fn zvec_field_schema_get_index_type(
717 schema: *const zvec_field_schema_t,
718 ) -> zvec_index_type_t;
719 pub fn zvec_field_schema_has_index(schema: *const zvec_field_schema_t) -> bool;
720 pub fn zvec_field_schema_get_index_params(
721 schema: *const zvec_field_schema_t,
722 ) -> *const zvec_index_params_t;
723 pub fn zvec_field_schema_set_index_params(
724 schema: *mut zvec_field_schema_t,
725 index_params: *const zvec_index_params_t,
726 ) -> zvec_error_code_t;
727 pub fn zvec_field_schema_validate(
728 schema: *const zvec_field_schema_t,
729 error_msg: *mut *mut zvec_string_t,
730 ) -> zvec_error_code_t;
731
732 pub fn zvec_collection_schema_create(name: *const c_char) -> *mut zvec_collection_schema_t;
737 pub fn zvec_collection_schema_destroy(schema: *mut zvec_collection_schema_t);
738 pub fn zvec_collection_schema_get_name(
739 schema: *const zvec_collection_schema_t,
740 ) -> *const c_char;
741 pub fn zvec_collection_schema_set_name(
742 schema: *mut zvec_collection_schema_t,
743 name: *const c_char,
744 ) -> zvec_error_code_t;
745 pub fn zvec_collection_schema_add_field(
746 schema: *mut zvec_collection_schema_t,
747 field: *const zvec_field_schema_t,
748 ) -> zvec_error_code_t;
749 pub fn zvec_collection_schema_alter_field(
750 schema: *mut zvec_collection_schema_t,
751 field_name: *const c_char,
752 new_field: *const zvec_field_schema_t,
753 ) -> zvec_error_code_t;
754 pub fn zvec_collection_schema_drop_field(
755 schema: *mut zvec_collection_schema_t,
756 field_name: *const c_char,
757 ) -> zvec_error_code_t;
758 pub fn zvec_collection_schema_has_field(
759 schema: *const zvec_collection_schema_t,
760 field_name: *const c_char,
761 ) -> bool;
762 pub fn zvec_collection_schema_get_field(
763 schema: *const zvec_collection_schema_t,
764 field_name: *const c_char,
765 ) -> *mut zvec_field_schema_t;
766 pub fn zvec_collection_schema_get_forward_field(
767 schema: *const zvec_collection_schema_t,
768 field_name: *const c_char,
769 ) -> *mut zvec_field_schema_t;
770 pub fn zvec_collection_schema_get_vector_field(
771 schema: *const zvec_collection_schema_t,
772 field_name: *const c_char,
773 ) -> *mut zvec_field_schema_t;
774 pub fn zvec_collection_schema_get_forward_fields(
775 schema: *const zvec_collection_schema_t,
776 fields: *mut *mut *mut zvec_field_schema_t,
777 count: *mut usize,
778 ) -> zvec_error_code_t;
779 pub fn zvec_collection_schema_get_forward_fields_with_index(
780 schema: *const zvec_collection_schema_t,
781 fields: *mut *mut *mut zvec_field_schema_t,
782 count: *mut usize,
783 ) -> zvec_error_code_t;
784 pub fn zvec_collection_schema_get_forward_field_names(
785 schema: *const zvec_collection_schema_t,
786 names: *mut *mut *const c_char,
787 count: *mut usize,
788 ) -> zvec_error_code_t;
789 pub fn zvec_collection_schema_get_forward_field_names_with_index(
790 schema: *const zvec_collection_schema_t,
791 names: *mut *mut *const c_char,
792 count: *mut usize,
793 ) -> zvec_error_code_t;
794 pub fn zvec_collection_schema_get_all_field_names(
795 schema: *const zvec_collection_schema_t,
796 names: *mut *mut *const c_char,
797 count: *mut usize,
798 ) -> zvec_error_code_t;
799 pub fn zvec_collection_schema_get_vector_fields(
800 schema: *const zvec_collection_schema_t,
801 fields: *mut *mut *mut zvec_field_schema_t,
802 count: *mut usize,
803 ) -> zvec_error_code_t;
804 pub fn zvec_collection_schema_get_max_doc_count_per_segment(
805 schema: *const zvec_collection_schema_t,
806 ) -> u64;
807 pub fn zvec_collection_schema_set_max_doc_count_per_segment(
808 schema: *mut zvec_collection_schema_t,
809 max_doc_count: u64,
810 ) -> zvec_error_code_t;
811 pub fn zvec_collection_schema_validate(
812 schema: *const zvec_collection_schema_t,
813 error_msg: *mut *mut zvec_string_t,
814 ) -> zvec_error_code_t;
815 pub fn zvec_collection_schema_add_index(
816 schema: *mut zvec_collection_schema_t,
817 field_name: *const c_char,
818 index_params: *const zvec_index_params_t,
819 ) -> zvec_error_code_t;
820 pub fn zvec_collection_schema_drop_index(
821 schema: *mut zvec_collection_schema_t,
822 field_name: *const c_char,
823 ) -> zvec_error_code_t;
824 pub fn zvec_collection_schema_has_index(
825 schema: *const zvec_collection_schema_t,
826 field_name: *const c_char,
827 ) -> bool;
828
829 pub fn zvec_collection_options_create() -> *mut zvec_collection_options_t;
834 pub fn zvec_collection_options_destroy(options: *mut zvec_collection_options_t);
835 pub fn zvec_collection_options_set_enable_mmap(
836 options: *mut zvec_collection_options_t,
837 enable: bool,
838 ) -> zvec_error_code_t;
839 pub fn zvec_collection_options_get_enable_mmap(
840 options: *const zvec_collection_options_t,
841 ) -> bool;
842 pub fn zvec_collection_options_set_max_buffer_size(
843 options: *mut zvec_collection_options_t,
844 size: usize,
845 ) -> zvec_error_code_t;
846 pub fn zvec_collection_options_get_max_buffer_size(
847 options: *const zvec_collection_options_t,
848 ) -> usize;
849 pub fn zvec_collection_options_set_read_only(
850 options: *mut zvec_collection_options_t,
851 read_only: bool,
852 ) -> zvec_error_code_t;
853 pub fn zvec_collection_options_get_read_only(options: *const zvec_collection_options_t)
854 -> bool;
855
856 pub fn zvec_collection_stats_get_doc_count(stats: *const zvec_collection_stats_t) -> u64;
861 pub fn zvec_collection_stats_get_index_count(stats: *const zvec_collection_stats_t) -> usize;
862 pub fn zvec_collection_stats_get_index_name(
863 stats: *const zvec_collection_stats_t,
864 index: usize,
865 ) -> *const c_char;
866 pub fn zvec_collection_stats_get_index_completeness(
867 stats: *const zvec_collection_stats_t,
868 index: usize,
869 ) -> f32;
870 pub fn zvec_collection_stats_destroy(stats: *mut zvec_collection_stats_t);
871
872 pub fn zvec_collection_create_and_open(
877 path: *const c_char,
878 schema: *const zvec_collection_schema_t,
879 options: *const zvec_collection_options_t,
880 collection: *mut *mut zvec_collection_t,
881 ) -> zvec_error_code_t;
882 pub fn zvec_collection_open(
883 path: *const c_char,
884 options: *const zvec_collection_options_t,
885 collection: *mut *mut zvec_collection_t,
886 ) -> zvec_error_code_t;
887 pub fn zvec_collection_close(collection: *mut zvec_collection_t) -> zvec_error_code_t;
888 pub fn zvec_collection_destroy(collection: *mut zvec_collection_t) -> zvec_error_code_t;
889 pub fn zvec_collection_flush(collection: *mut zvec_collection_t) -> zvec_error_code_t;
890 pub fn zvec_collection_get_schema(
891 collection: *const zvec_collection_t,
892 schema: *mut *mut zvec_collection_schema_t,
893 ) -> zvec_error_code_t;
894 pub fn zvec_collection_get_options(
895 collection: *const zvec_collection_t,
896 options: *mut *mut zvec_collection_options_t,
897 ) -> zvec_error_code_t;
898 pub fn zvec_collection_get_stats(
899 collection: *const zvec_collection_t,
900 stats: *mut *mut zvec_collection_stats_t,
901 ) -> zvec_error_code_t;
902 pub fn zvec_free_field_schema(field_schema: *mut zvec_field_schema_t);
903
904 pub fn zvec_collection_create_index(
909 collection: *mut zvec_collection_t,
910 field_name: *const c_char,
911 index_params: *const zvec_index_params_t,
912 ) -> zvec_error_code_t;
913 pub fn zvec_collection_drop_index(
914 collection: *mut zvec_collection_t,
915 field_name: *const c_char,
916 ) -> zvec_error_code_t;
917 pub fn zvec_collection_optimize(collection: *mut zvec_collection_t) -> zvec_error_code_t;
918
919 pub fn zvec_collection_add_column(
924 collection: *mut zvec_collection_t,
925 field_schema: *const zvec_field_schema_t,
926 expression: *const c_char,
927 ) -> zvec_error_code_t;
928 pub fn zvec_collection_drop_column(
929 collection: *mut zvec_collection_t,
930 column_name: *const c_char,
931 ) -> zvec_error_code_t;
932 pub fn zvec_collection_alter_column(
933 collection: *mut zvec_collection_t,
934 column_name: *const c_char,
935 new_name: *const c_char,
936 new_schema: *const zvec_field_schema_t,
937 ) -> zvec_error_code_t;
938
939 pub fn zvec_collection_insert(
944 collection: *mut zvec_collection_t,
945 docs: *const *const zvec_doc_t,
946 doc_count: usize,
947 success_count: *mut usize,
948 error_count: *mut usize,
949 ) -> zvec_error_code_t;
950 pub fn zvec_collection_insert_with_results(
951 collection: *mut zvec_collection_t,
952 docs: *const *const zvec_doc_t,
953 doc_count: usize,
954 results: *mut *mut zvec_write_result_t,
955 result_count: *mut usize,
956 ) -> zvec_error_code_t;
957 pub fn zvec_collection_update(
958 collection: *mut zvec_collection_t,
959 docs: *const *const zvec_doc_t,
960 doc_count: usize,
961 success_count: *mut usize,
962 error_count: *mut usize,
963 ) -> zvec_error_code_t;
964 pub fn zvec_collection_update_with_results(
965 collection: *mut zvec_collection_t,
966 docs: *const *const zvec_doc_t,
967 doc_count: usize,
968 results: *mut *mut zvec_write_result_t,
969 result_count: *mut usize,
970 ) -> zvec_error_code_t;
971 pub fn zvec_collection_upsert(
972 collection: *mut zvec_collection_t,
973 docs: *const *const zvec_doc_t,
974 doc_count: usize,
975 success_count: *mut usize,
976 error_count: *mut usize,
977 ) -> zvec_error_code_t;
978 pub fn zvec_collection_upsert_with_results(
979 collection: *mut zvec_collection_t,
980 docs: *const *const zvec_doc_t,
981 doc_count: usize,
982 results: *mut *mut zvec_write_result_t,
983 result_count: *mut usize,
984 ) -> zvec_error_code_t;
985 pub fn zvec_collection_delete(
986 collection: *mut zvec_collection_t,
987 pks: *const *const c_char,
988 pk_count: usize,
989 success_count: *mut usize,
990 error_count: *mut usize,
991 ) -> zvec_error_code_t;
992 pub fn zvec_collection_delete_with_results(
993 collection: *mut zvec_collection_t,
994 pks: *const *const c_char,
995 pk_count: usize,
996 results: *mut *mut zvec_write_result_t,
997 result_count: *mut usize,
998 ) -> zvec_error_code_t;
999 pub fn zvec_write_results_free(results: *mut zvec_write_result_t, result_count: usize);
1000 pub fn zvec_collection_delete_by_filter(
1001 collection: *mut zvec_collection_t,
1002 filter: *const c_char,
1003 ) -> zvec_error_code_t;
1004
1005 pub fn zvec_collection_query(
1010 collection: *const zvec_collection_t,
1011 query: *const zvec_vector_query_t,
1012 results: *mut *mut *mut zvec_doc_t,
1013 result_count: *mut usize,
1014 ) -> zvec_error_code_t;
1015 pub fn zvec_collection_multi_query(
1016 collection: *const zvec_collection_t,
1017 query: *const zvec_multi_query_t,
1018 results: *mut *mut *mut zvec_doc_t,
1019 result_count: *mut usize,
1020 ) -> zvec_error_code_t;
1021 pub fn zvec_collection_fetch(
1022 collection: *mut zvec_collection_t,
1023 primary_keys: *const *const c_char,
1024 count: usize,
1025 output_fields: *const *const c_char,
1026 output_field_count: usize,
1027 include_vector: bool,
1028 documents: *mut *mut *mut zvec_doc_t,
1029 found_count: *mut usize,
1030 ) -> zvec_error_code_t;
1031
1032 pub fn zvec_query_params_hnsw_create(
1037 ef: c_int,
1038 radius: f32,
1039 is_linear: bool,
1040 is_using_refiner: bool,
1041 ) -> *mut zvec_hnsw_query_params_t;
1042 pub fn zvec_query_params_hnsw_destroy(params: *mut zvec_hnsw_query_params_t);
1043 pub fn zvec_query_params_hnsw_set_ef(
1044 params: *mut zvec_hnsw_query_params_t,
1045 ef: c_int,
1046 ) -> zvec_error_code_t;
1047 pub fn zvec_query_params_hnsw_get_ef(params: *const zvec_hnsw_query_params_t) -> c_int;
1048 pub fn zvec_query_params_hnsw_set_radius(
1049 params: *mut zvec_hnsw_query_params_t,
1050 radius: f32,
1051 ) -> zvec_error_code_t;
1052 pub fn zvec_query_params_hnsw_get_radius(params: *const zvec_hnsw_query_params_t) -> f32;
1053 pub fn zvec_query_params_hnsw_set_is_linear(
1054 params: *mut zvec_hnsw_query_params_t,
1055 is_linear: bool,
1056 ) -> zvec_error_code_t;
1057 pub fn zvec_query_params_hnsw_get_is_linear(params: *const zvec_hnsw_query_params_t) -> bool;
1058 pub fn zvec_query_params_hnsw_set_is_using_refiner(
1059 params: *mut zvec_hnsw_query_params_t,
1060 is_using_refiner: bool,
1061 ) -> zvec_error_code_t;
1062 pub fn zvec_query_params_hnsw_get_is_using_refiner(
1063 params: *const zvec_hnsw_query_params_t,
1064 ) -> bool;
1065
1066 pub fn zvec_query_params_ivf_create(
1071 nprobe: c_int,
1072 is_using_refiner: bool,
1073 scale_factor: f32,
1074 ) -> *mut zvec_ivf_query_params_t;
1075 pub fn zvec_query_params_ivf_destroy(params: *mut zvec_ivf_query_params_t);
1076 pub fn zvec_query_params_ivf_set_nprobe(
1077 params: *mut zvec_ivf_query_params_t,
1078 nprobe: c_int,
1079 ) -> zvec_error_code_t;
1080 pub fn zvec_query_params_ivf_get_nprobe(params: *const zvec_ivf_query_params_t) -> c_int;
1081 pub fn zvec_query_params_ivf_set_scale_factor(
1082 params: *mut zvec_ivf_query_params_t,
1083 scale_factor: f32,
1084 ) -> zvec_error_code_t;
1085 pub fn zvec_query_params_ivf_get_scale_factor(params: *const zvec_ivf_query_params_t) -> f32;
1086 pub fn zvec_query_params_ivf_set_radius(
1087 params: *mut zvec_ivf_query_params_t,
1088 radius: f32,
1089 ) -> zvec_error_code_t;
1090 pub fn zvec_query_params_ivf_get_radius(params: *const zvec_ivf_query_params_t) -> f32;
1091 pub fn zvec_query_params_ivf_set_is_linear(
1092 params: *mut zvec_ivf_query_params_t,
1093 is_linear: bool,
1094 ) -> zvec_error_code_t;
1095 pub fn zvec_query_params_ivf_get_is_linear(params: *const zvec_ivf_query_params_t) -> bool;
1096 pub fn zvec_query_params_ivf_set_is_using_refiner(
1097 params: *mut zvec_ivf_query_params_t,
1098 is_using_refiner: bool,
1099 ) -> zvec_error_code_t;
1100 pub fn zvec_query_params_ivf_get_is_using_refiner(
1101 params: *const zvec_ivf_query_params_t,
1102 ) -> bool;
1103
1104 pub fn zvec_query_params_flat_create(
1109 is_using_refiner: bool,
1110 scale_factor: f32,
1111 ) -> *mut zvec_flat_query_params_t;
1112 pub fn zvec_query_params_flat_destroy(params: *mut zvec_flat_query_params_t);
1113 pub fn zvec_query_params_flat_set_scale_factor(
1114 params: *mut zvec_flat_query_params_t,
1115 scale_factor: f32,
1116 ) -> zvec_error_code_t;
1117 pub fn zvec_query_params_flat_get_scale_factor(params: *const zvec_flat_query_params_t) -> f32;
1118 pub fn zvec_query_params_flat_set_radius(
1119 params: *mut zvec_flat_query_params_t,
1120 radius: f32,
1121 ) -> zvec_error_code_t;
1122 pub fn zvec_query_params_flat_get_radius(params: *const zvec_flat_query_params_t) -> f32;
1123 pub fn zvec_query_params_flat_set_is_linear(
1124 params: *mut zvec_flat_query_params_t,
1125 is_linear: bool,
1126 ) -> zvec_error_code_t;
1127 pub fn zvec_query_params_flat_get_is_linear(params: *const zvec_flat_query_params_t) -> bool;
1128 pub fn zvec_query_params_flat_set_is_using_refiner(
1129 params: *mut zvec_flat_query_params_t,
1130 is_using_refiner: bool,
1131 ) -> zvec_error_code_t;
1132 pub fn zvec_query_params_flat_get_is_using_refiner(
1133 params: *const zvec_flat_query_params_t,
1134 ) -> bool;
1135
1136 pub fn zvec_query_params_vamana_create(
1141 ef_search: c_int,
1142 radius: f32,
1143 is_linear: bool,
1144 is_using_refiner: bool,
1145 ) -> *mut zvec_vamana_query_params_t;
1146 pub fn zvec_query_params_vamana_destroy(params: *mut zvec_vamana_query_params_t);
1147 pub fn zvec_query_params_vamana_set_ef_search(
1148 params: *mut zvec_vamana_query_params_t,
1149 ef_search: c_int,
1150 ) -> zvec_error_code_t;
1151 pub fn zvec_query_params_vamana_get_ef_search(
1152 params: *const zvec_vamana_query_params_t,
1153 ) -> c_int;
1154 pub fn zvec_query_params_vamana_set_radius(
1155 params: *mut zvec_vamana_query_params_t,
1156 radius: f32,
1157 ) -> zvec_error_code_t;
1158 pub fn zvec_query_params_vamana_get_radius(params: *const zvec_vamana_query_params_t) -> f32;
1159 pub fn zvec_query_params_vamana_set_is_linear(
1160 params: *mut zvec_vamana_query_params_t,
1161 is_linear: bool,
1162 ) -> zvec_error_code_t;
1163 pub fn zvec_query_params_vamana_get_is_linear(
1164 params: *const zvec_vamana_query_params_t,
1165 ) -> bool;
1166 pub fn zvec_query_params_vamana_set_is_using_refiner(
1167 params: *mut zvec_vamana_query_params_t,
1168 is_using_refiner: bool,
1169 ) -> zvec_error_code_t;
1170 pub fn zvec_query_params_vamana_get_is_using_refiner(
1171 params: *const zvec_vamana_query_params_t,
1172 ) -> bool;
1173
1174 pub fn zvec_query_params_diskann_create(list_size: c_int) -> *mut zvec_diskann_query_params_t;
1179 pub fn zvec_query_params_diskann_destroy(params: *mut zvec_diskann_query_params_t);
1180 pub fn zvec_query_params_diskann_set_list_size(
1181 params: *mut zvec_diskann_query_params_t,
1182 list_size: c_int,
1183 ) -> zvec_error_code_t;
1184 pub fn zvec_query_params_diskann_get_list_size(
1185 params: *const zvec_diskann_query_params_t,
1186 ) -> c_int;
1187 pub fn zvec_query_params_diskann_set_radius(
1188 params: *mut zvec_diskann_query_params_t,
1189 radius: f32,
1190 ) -> zvec_error_code_t;
1191 pub fn zvec_query_params_diskann_get_radius(params: *const zvec_diskann_query_params_t) -> f32;
1192 pub fn zvec_query_params_diskann_set_is_linear(
1193 params: *mut zvec_diskann_query_params_t,
1194 is_linear: bool,
1195 ) -> zvec_error_code_t;
1196 pub fn zvec_query_params_diskann_get_is_linear(
1197 params: *const zvec_diskann_query_params_t,
1198 ) -> bool;
1199 pub fn zvec_query_params_diskann_set_is_using_refiner(
1200 params: *mut zvec_diskann_query_params_t,
1201 is_using_refiner: bool,
1202 ) -> zvec_error_code_t;
1203 pub fn zvec_query_params_diskann_get_is_using_refiner(
1204 params: *const zvec_diskann_query_params_t,
1205 ) -> bool;
1206
1207 pub fn zvec_query_params_fts_create(
1212 default_operator: *const c_char,
1213 ) -> *mut zvec_fts_query_params_t;
1214 pub fn zvec_query_params_fts_destroy(params: *mut zvec_fts_query_params_t);
1215 pub fn zvec_query_params_fts_set_default_operator(
1216 params: *mut zvec_fts_query_params_t,
1217 default_operator: *const c_char,
1218 ) -> zvec_error_code_t;
1219 pub fn zvec_query_params_fts_get_default_operator(
1220 params: *const zvec_fts_query_params_t,
1221 ) -> *const c_char;
1222
1223 pub fn zvec_fts_create() -> *mut zvec_fts_t;
1228 pub fn zvec_fts_destroy(fts: *mut zvec_fts_t);
1229 pub fn zvec_fts_set_query_string(
1230 fts: *mut zvec_fts_t,
1231 query_string: *const c_char,
1232 ) -> zvec_error_code_t;
1233 pub fn zvec_fts_set_match_string(
1234 fts: *mut zvec_fts_t,
1235 match_string: *const c_char,
1236 ) -> zvec_error_code_t;
1237 pub fn zvec_fts_get_query_string(fts: *const zvec_fts_t) -> *const c_char;
1238 pub fn zvec_fts_get_match_string(fts: *const zvec_fts_t) -> *const c_char;
1239
1240 pub fn zvec_vector_query_create() -> *mut zvec_vector_query_t;
1245 pub fn zvec_vector_query_destroy(query: *mut zvec_vector_query_t);
1246 pub fn zvec_vector_query_set_topk(
1247 query: *mut zvec_vector_query_t,
1248 topk: c_int,
1249 ) -> zvec_error_code_t;
1250 pub fn zvec_vector_query_get_topk(query: *const zvec_vector_query_t) -> c_int;
1251 pub fn zvec_vector_query_set_field_name(
1252 query: *mut zvec_vector_query_t,
1253 field_name: *const c_char,
1254 ) -> zvec_error_code_t;
1255 pub fn zvec_vector_query_get_field_name(query: *const zvec_vector_query_t) -> *const c_char;
1256 pub fn zvec_vector_query_set_query_vector(
1257 query: *mut zvec_vector_query_t,
1258 data: *const c_void,
1259 size: usize,
1260 ) -> zvec_error_code_t;
1261 pub fn zvec_vector_query_set_filter(
1262 query: *mut zvec_vector_query_t,
1263 filter: *const c_char,
1264 ) -> zvec_error_code_t;
1265 pub fn zvec_vector_query_get_filter(query: *const zvec_vector_query_t) -> *const c_char;
1266 pub fn zvec_vector_query_set_include_vector(
1267 query: *mut zvec_vector_query_t,
1268 include: bool,
1269 ) -> zvec_error_code_t;
1270 pub fn zvec_vector_query_get_include_vector(query: *const zvec_vector_query_t) -> bool;
1271 pub fn zvec_vector_query_set_include_doc_id(
1272 query: *mut zvec_vector_query_t,
1273 include: bool,
1274 ) -> zvec_error_code_t;
1275 pub fn zvec_vector_query_get_include_doc_id(query: *const zvec_vector_query_t) -> bool;
1276 pub fn zvec_vector_query_set_output_fields(
1277 query: *mut zvec_vector_query_t,
1278 fields: *const *const c_char,
1279 count: usize,
1280 ) -> zvec_error_code_t;
1281 pub fn zvec_vector_query_get_output_fields(
1282 query: *const zvec_vector_query_t,
1283 fields: *mut *mut *const c_char,
1284 count: *mut usize,
1285 ) -> zvec_error_code_t;
1286 pub fn zvec_vector_query_set_query_params(
1287 query: *mut zvec_vector_query_t,
1288 params: *mut c_void,
1289 ) -> zvec_error_code_t;
1290 pub fn zvec_vector_query_set_hnsw_params(
1291 query: *mut zvec_vector_query_t,
1292 hnsw_params: *mut zvec_hnsw_query_params_t,
1293 ) -> zvec_error_code_t;
1294 pub fn zvec_vector_query_set_ivf_params(
1295 query: *mut zvec_vector_query_t,
1296 ivf_params: *mut zvec_ivf_query_params_t,
1297 ) -> zvec_error_code_t;
1298 pub fn zvec_vector_query_set_flat_params(
1299 query: *mut zvec_vector_query_t,
1300 flat_params: *mut zvec_flat_query_params_t,
1301 ) -> zvec_error_code_t;
1302 pub fn zvec_vector_query_set_vamana_params(
1303 query: *mut zvec_vector_query_t,
1304 vamana_params: *mut zvec_vamana_query_params_t,
1305 ) -> zvec_error_code_t;
1306 pub fn zvec_vector_query_set_diskann_params(
1307 query: *mut zvec_vector_query_t,
1308 diskann_params: *mut zvec_diskann_query_params_t,
1309 ) -> zvec_error_code_t;
1310 pub fn zvec_vector_query_set_fts_params(
1311 query: *mut zvec_vector_query_t,
1312 fts_params: *mut zvec_fts_query_params_t,
1313 ) -> zvec_error_code_t;
1314 pub fn zvec_vector_query_set_fts(
1315 query: *mut zvec_vector_query_t,
1316 fts: *const zvec_fts_t,
1317 ) -> zvec_error_code_t;
1318 pub fn zvec_vector_query_get_fts(query: *const zvec_vector_query_t) -> *const zvec_fts_t;
1319
1320 pub fn zvec_group_by_vector_query_create() -> *mut zvec_group_by_vector_query_t;
1325 pub fn zvec_group_by_vector_query_destroy(query: *mut zvec_group_by_vector_query_t);
1326 pub fn zvec_group_by_vector_query_set_field_name(
1327 query: *mut zvec_group_by_vector_query_t,
1328 field_name: *const c_char,
1329 ) -> zvec_error_code_t;
1330 pub fn zvec_group_by_vector_query_get_field_name(
1331 query: *const zvec_group_by_vector_query_t,
1332 ) -> *const c_char;
1333 pub fn zvec_group_by_vector_query_set_group_by_field_name(
1334 query: *mut zvec_group_by_vector_query_t,
1335 field_name: *const c_char,
1336 ) -> zvec_error_code_t;
1337 pub fn zvec_group_by_vector_query_get_group_by_field_name(
1338 query: *const zvec_group_by_vector_query_t,
1339 ) -> *const c_char;
1340 pub fn zvec_group_by_vector_query_set_group_count(
1341 query: *mut zvec_group_by_vector_query_t,
1342 count: u32,
1343 ) -> zvec_error_code_t;
1344 pub fn zvec_group_by_vector_query_get_group_count(
1345 query: *const zvec_group_by_vector_query_t,
1346 ) -> u32;
1347 pub fn zvec_group_by_vector_query_set_topk_per_group(
1348 query: *mut zvec_group_by_vector_query_t,
1349 topk: u32,
1350 ) -> zvec_error_code_t;
1351 pub fn zvec_group_by_vector_query_get_topk_per_group(
1352 query: *const zvec_group_by_vector_query_t,
1353 ) -> u32;
1354 pub fn zvec_group_by_vector_query_set_query_vector(
1355 query: *mut zvec_group_by_vector_query_t,
1356 data: *const c_void,
1357 size: usize,
1358 ) -> zvec_error_code_t;
1359 pub fn zvec_group_by_vector_query_set_filter(
1360 query: *mut zvec_group_by_vector_query_t,
1361 filter: *const c_char,
1362 ) -> zvec_error_code_t;
1363 pub fn zvec_group_by_vector_query_get_filter(
1364 query: *const zvec_group_by_vector_query_t,
1365 ) -> *const c_char;
1366 pub fn zvec_group_by_vector_query_set_include_vector(
1367 query: *mut zvec_group_by_vector_query_t,
1368 include: bool,
1369 ) -> zvec_error_code_t;
1370 pub fn zvec_group_by_vector_query_get_include_vector(
1371 query: *const zvec_group_by_vector_query_t,
1372 ) -> bool;
1373 pub fn zvec_group_by_vector_query_set_output_fields(
1374 query: *mut zvec_group_by_vector_query_t,
1375 fields: *const *const c_char,
1376 count: usize,
1377 ) -> zvec_error_code_t;
1378 pub fn zvec_group_by_vector_query_get_output_fields(
1379 query: *mut zvec_group_by_vector_query_t,
1380 fields: *mut *mut *const c_char,
1381 count: *mut usize,
1382 ) -> zvec_error_code_t;
1383 pub fn zvec_group_by_vector_query_set_query_params(
1384 query: *mut zvec_group_by_vector_query_t,
1385 params: *mut c_void,
1386 ) -> zvec_error_code_t;
1387 pub fn zvec_group_by_vector_query_set_hnsw_params(
1388 query: *mut zvec_group_by_vector_query_t,
1389 hnsw_params: *mut zvec_hnsw_query_params_t,
1390 ) -> zvec_error_code_t;
1391 pub fn zvec_group_by_vector_query_set_ivf_params(
1392 query: *mut zvec_group_by_vector_query_t,
1393 ivf_params: *mut zvec_ivf_query_params_t,
1394 ) -> zvec_error_code_t;
1395 pub fn zvec_group_by_vector_query_set_flat_params(
1396 query: *mut zvec_group_by_vector_query_t,
1397 flat_params: *mut zvec_flat_query_params_t,
1398 ) -> zvec_error_code_t;
1399 pub fn zvec_group_by_vector_query_set_vamana_params(
1400 query: *mut zvec_group_by_vector_query_t,
1401 vamana_params: *mut zvec_vamana_query_params_t,
1402 ) -> zvec_error_code_t;
1403 pub fn zvec_group_by_vector_query_set_diskann_params(
1404 query: *mut zvec_group_by_vector_query_t,
1405 diskann_params: *mut zvec_diskann_query_params_t,
1406 ) -> zvec_error_code_t;
1407
1408 pub fn zvec_multi_query_create() -> *mut zvec_multi_query_t;
1414 pub fn zvec_multi_query_destroy(query: *mut zvec_multi_query_t);
1415 pub fn zvec_multi_query_add_sub_query(
1416 query: *mut zvec_multi_query_t,
1417 sub_query: *const zvec_sub_query_t,
1418 ) -> zvec_error_code_t;
1419 pub fn zvec_multi_query_get_sub_query_count(query: *const zvec_multi_query_t) -> usize;
1420 pub fn zvec_multi_query_set_topk(
1421 query: *mut zvec_multi_query_t,
1422 topk: c_int,
1423 ) -> zvec_error_code_t;
1424 pub fn zvec_multi_query_get_topk(query: *const zvec_multi_query_t) -> c_int;
1425 pub fn zvec_multi_query_set_filter(
1426 query: *mut zvec_multi_query_t,
1427 filter: *const c_char,
1428 ) -> zvec_error_code_t;
1429 pub fn zvec_multi_query_get_filter(query: *const zvec_multi_query_t) -> *const c_char;
1430 pub fn zvec_multi_query_set_include_vector(
1431 query: *mut zvec_multi_query_t,
1432 include: bool,
1433 ) -> zvec_error_code_t;
1434 pub fn zvec_multi_query_get_include_vector(query: *const zvec_multi_query_t) -> bool;
1435 pub fn zvec_multi_query_set_output_fields(
1436 query: *mut zvec_multi_query_t,
1437 fields: *const *const c_char,
1438 count: usize,
1439 ) -> zvec_error_code_t;
1440 pub fn zvec_multi_query_get_output_fields(
1441 query: *mut zvec_multi_query_t,
1442 fields: *mut *mut *const c_char,
1443 count: *mut usize,
1444 ) -> zvec_error_code_t;
1445 pub fn zvec_multi_query_set_rerank_rrf(
1446 query: *mut zvec_multi_query_t,
1447 rank_constant: c_int,
1448 ) -> zvec_error_code_t;
1449 pub fn zvec_multi_query_set_rerank_weighted(
1450 query: *mut zvec_multi_query_t,
1451 weights: *const f64,
1452 weight_count: usize,
1453 ) -> zvec_error_code_t;
1454
1455 pub fn zvec_sub_query_create() -> *mut zvec_sub_query_t;
1456 pub fn zvec_sub_query_destroy(query: *mut zvec_sub_query_t);
1457 pub fn zvec_sub_query_set_num_candidates(
1458 query: *mut zvec_sub_query_t,
1459 num_candidates: c_int,
1460 ) -> zvec_error_code_t;
1461 pub fn zvec_sub_query_get_num_candidates(query: *const zvec_sub_query_t) -> c_int;
1462 pub fn zvec_sub_query_set_field_name(
1463 query: *mut zvec_sub_query_t,
1464 field_name: *const c_char,
1465 ) -> zvec_error_code_t;
1466 pub fn zvec_sub_query_get_field_name(query: *const zvec_sub_query_t) -> *const c_char;
1467 pub fn zvec_sub_query_set_query_vector(
1468 query: *mut zvec_sub_query_t,
1469 data: *const c_void,
1470 size: usize,
1471 ) -> zvec_error_code_t;
1472 pub fn zvec_sub_query_set_sparse_vector(
1473 query: *mut zvec_sub_query_t,
1474 indices: *const u32,
1475 values: *const f32,
1476 count: usize,
1477 ) -> zvec_error_code_t;
1478 pub fn zvec_sub_query_set_sparse_indices(
1479 query: *mut zvec_sub_query_t,
1480 indices: *const u32,
1481 count: usize,
1482 ) -> zvec_error_code_t;
1483 pub fn zvec_sub_query_set_sparse_values(
1484 query: *mut zvec_sub_query_t,
1485 values: *const f32,
1486 count: usize,
1487 ) -> zvec_error_code_t;
1488 pub fn zvec_sub_query_set_hnsw_params(
1489 query: *mut zvec_sub_query_t,
1490 hnsw_params: *mut zvec_hnsw_query_params_t,
1491 ) -> zvec_error_code_t;
1492 pub fn zvec_sub_query_set_ivf_params(
1493 query: *mut zvec_sub_query_t,
1494 ivf_params: *mut zvec_ivf_query_params_t,
1495 ) -> zvec_error_code_t;
1496 pub fn zvec_sub_query_set_flat_params(
1497 query: *mut zvec_sub_query_t,
1498 flat_params: *mut zvec_flat_query_params_t,
1499 ) -> zvec_error_code_t;
1500 pub fn zvec_sub_query_set_vamana_params(
1501 query: *mut zvec_sub_query_t,
1502 vamana_params: *mut zvec_vamana_query_params_t,
1503 ) -> zvec_error_code_t;
1504 pub fn zvec_sub_query_set_diskann_params(
1505 query: *mut zvec_sub_query_t,
1506 diskann_params: *mut zvec_diskann_query_params_t,
1507 ) -> zvec_error_code_t;
1508 pub fn zvec_sub_query_set_fts_params(
1509 query: *mut zvec_sub_query_t,
1510 fts_params: *mut zvec_fts_query_params_t,
1511 ) -> zvec_error_code_t;
1512 pub fn zvec_sub_query_set_fts(
1513 query: *mut zvec_sub_query_t,
1514 fts: *const zvec_fts_t,
1515 ) -> zvec_error_code_t;
1516
1517 pub fn zvec_doc_create() -> *mut zvec_doc_t;
1522 pub fn zvec_doc_destroy(doc: *mut zvec_doc_t);
1523 pub fn zvec_doc_clear(doc: *mut zvec_doc_t);
1524 pub fn zvec_doc_add_field_by_value(
1525 doc: *mut zvec_doc_t,
1526 field_name: *const c_char,
1527 data_type: zvec_data_type_t,
1528 value: *const c_void,
1529 value_size: usize,
1530 ) -> zvec_error_code_t;
1531 pub fn zvec_doc_remove_field(
1532 doc: *mut zvec_doc_t,
1533 field_name: *const c_char,
1534 ) -> zvec_error_code_t;
1535 pub fn zvec_docs_free(documents: *mut *mut zvec_doc_t, count: usize);
1536 pub fn zvec_doc_set_pk(doc: *mut zvec_doc_t, pk: *const c_char);
1537 pub fn zvec_doc_set_doc_id(doc: *mut zvec_doc_t, doc_id: u64);
1538 pub fn zvec_doc_set_score(doc: *mut zvec_doc_t, score: f32);
1539 pub fn zvec_doc_set_operator(doc: *mut zvec_doc_t, op: zvec_doc_operator_t);
1540 pub fn zvec_doc_set_field_null(
1541 doc: *mut zvec_doc_t,
1542 field_name: *const c_char,
1543 ) -> zvec_error_code_t;
1544 pub fn zvec_doc_get_doc_id(doc: *const zvec_doc_t) -> u64;
1545 pub fn zvec_doc_get_score(doc: *const zvec_doc_t) -> f32;
1546 pub fn zvec_doc_get_operator(doc: *const zvec_doc_t) -> zvec_doc_operator_t;
1547 pub fn zvec_doc_get_field_count(doc: *const zvec_doc_t) -> usize;
1548 pub fn zvec_doc_get_pk_pointer(doc: *const zvec_doc_t) -> *const c_char;
1549 pub fn zvec_doc_get_pk_copy(doc: *const zvec_doc_t) -> *const c_char;
1550 pub fn zvec_doc_get_field_value_basic(
1551 doc: *const zvec_doc_t,
1552 field_name: *const c_char,
1553 field_type: zvec_data_type_t,
1554 value_buffer: *mut c_void,
1555 buffer_size: usize,
1556 ) -> zvec_error_code_t;
1557 pub fn zvec_doc_get_field_value_copy(
1558 doc: *const zvec_doc_t,
1559 field_name: *const c_char,
1560 field_type: zvec_data_type_t,
1561 value: *mut *mut c_void,
1562 value_size: *mut usize,
1563 ) -> zvec_error_code_t;
1564 pub fn zvec_doc_get_field_value_pointer(
1565 doc: *const zvec_doc_t,
1566 field_name: *const c_char,
1567 field_type: zvec_data_type_t,
1568 value: *mut *const c_void,
1569 value_size: *mut usize,
1570 ) -> zvec_error_code_t;
1571 pub fn zvec_doc_is_empty(doc: *const zvec_doc_t) -> bool;
1572 pub fn zvec_doc_has_field(doc: *const zvec_doc_t, field_name: *const c_char) -> bool;
1573 pub fn zvec_doc_has_field_value(doc: *const zvec_doc_t, field_name: *const c_char) -> bool;
1574 pub fn zvec_doc_is_field_null(doc: *const zvec_doc_t, field_name: *const c_char) -> bool;
1575 pub fn zvec_doc_get_field_names(
1576 doc: *const zvec_doc_t,
1577 field_names: *mut *mut *mut c_char,
1578 count: *mut usize,
1579 ) -> zvec_error_code_t;
1580 pub fn zvec_free_str_array(array: *mut *mut c_char, count: usize);
1581 pub fn zvec_doc_serialize(
1582 doc: *const zvec_doc_t,
1583 data: *mut *mut u8,
1584 size: *mut usize,
1585 ) -> zvec_error_code_t;
1586 pub fn zvec_doc_deserialize(
1587 data: *const u8,
1588 size: usize,
1589 doc: *mut *mut zvec_doc_t,
1590 ) -> zvec_error_code_t;
1591 pub fn zvec_doc_merge(doc: *mut zvec_doc_t, other: *const zvec_doc_t);
1592 pub fn zvec_doc_memory_usage(doc: *const zvec_doc_t) -> usize;
1593 pub fn zvec_doc_validate(
1594 doc: *const zvec_doc_t,
1595 schema: *const zvec_collection_schema_t,
1596 is_update: bool,
1597 error_msg: *mut *mut c_char,
1598 ) -> zvec_error_code_t;
1599 pub fn zvec_doc_to_detail_string(
1600 doc: *const zvec_doc_t,
1601 detail_str: *mut *mut c_char,
1602 ) -> zvec_error_code_t;
1603
1604 pub fn zvec_data_type_to_string(data_type: zvec_data_type_t) -> *const c_char;
1609 pub fn zvec_index_type_to_string(index_type: zvec_index_type_t) -> *const c_char;
1610 pub fn zvec_metric_type_to_string(metric_type: zvec_metric_type_t) -> *const c_char;
1611}