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_fts_query_params_t {
123 _private: [u8; 0],
124}
125
126#[repr(C)]
129pub struct zvec_fts_t {
130 _private: [u8; 0],
131}
132
133#[repr(C)]
136pub struct zvec_multi_query_t {
137 _private: [u8; 0],
138}
139
140#[repr(C)]
143pub struct zvec_sub_query_t {
144 _private: [u8; 0],
145}
146
147pub type zvec_error_code_t = u32;
153pub type zvec_data_type_t = u32;
155pub type zvec_index_type_t = u32;
157pub type zvec_metric_type_t = u32;
159pub type zvec_quantize_type_t = u32;
161pub type zvec_log_level_t = u32;
163pub type zvec_log_type_t = u32;
165pub type zvec_doc_operator_t = u32;
167
168pub const ZVEC_OK: zvec_error_code_t = 0;
174pub const ZVEC_ERROR_NOT_FOUND: zvec_error_code_t = 1;
176pub const ZVEC_ERROR_ALREADY_EXISTS: zvec_error_code_t = 2;
178pub const ZVEC_ERROR_INVALID_ARGUMENT: zvec_error_code_t = 3;
180pub const ZVEC_ERROR_PERMISSION_DENIED: zvec_error_code_t = 4;
182pub const ZVEC_ERROR_FAILED_PRECONDITION: zvec_error_code_t = 5;
184pub const ZVEC_ERROR_RESOURCE_EXHAUSTED: zvec_error_code_t = 6;
186pub const ZVEC_ERROR_UNAVAILABLE: zvec_error_code_t = 7;
188pub const ZVEC_ERROR_INTERNAL_ERROR: zvec_error_code_t = 8;
190pub const ZVEC_ERROR_NOT_SUPPORTED: zvec_error_code_t = 9;
192pub const ZVEC_ERROR_UNKNOWN: zvec_error_code_t = 10;
194
195pub const ZVEC_DATA_TYPE_UNDEFINED: zvec_data_type_t = 0;
201pub const ZVEC_DATA_TYPE_BINARY: zvec_data_type_t = 1;
203pub const ZVEC_DATA_TYPE_STRING: zvec_data_type_t = 2;
205pub const ZVEC_DATA_TYPE_BOOL: zvec_data_type_t = 3;
207pub const ZVEC_DATA_TYPE_INT32: zvec_data_type_t = 4;
209pub const ZVEC_DATA_TYPE_INT64: zvec_data_type_t = 5;
211pub const ZVEC_DATA_TYPE_UINT32: zvec_data_type_t = 6;
213pub const ZVEC_DATA_TYPE_UINT64: zvec_data_type_t = 7;
215pub const ZVEC_DATA_TYPE_FLOAT: zvec_data_type_t = 8;
217pub const ZVEC_DATA_TYPE_DOUBLE: zvec_data_type_t = 9;
219pub const ZVEC_DATA_TYPE_VECTOR_BINARY32: zvec_data_type_t = 20;
221pub const ZVEC_DATA_TYPE_VECTOR_BINARY64: zvec_data_type_t = 21;
223pub const ZVEC_DATA_TYPE_VECTOR_FP16: zvec_data_type_t = 22;
225pub const ZVEC_DATA_TYPE_VECTOR_FP32: zvec_data_type_t = 23;
227pub const ZVEC_DATA_TYPE_VECTOR_FP64: zvec_data_type_t = 24;
229pub const ZVEC_DATA_TYPE_VECTOR_INT4: zvec_data_type_t = 25;
231pub const ZVEC_DATA_TYPE_VECTOR_INT8: zvec_data_type_t = 26;
233pub const ZVEC_DATA_TYPE_VECTOR_INT16: zvec_data_type_t = 27;
235pub const ZVEC_DATA_TYPE_SPARSE_VECTOR_FP16: zvec_data_type_t = 30;
237pub const ZVEC_DATA_TYPE_SPARSE_VECTOR_FP32: zvec_data_type_t = 31;
239pub const ZVEC_DATA_TYPE_ARRAY_BINARY: zvec_data_type_t = 40;
241pub const ZVEC_DATA_TYPE_ARRAY_STRING: zvec_data_type_t = 41;
243pub const ZVEC_DATA_TYPE_ARRAY_BOOL: zvec_data_type_t = 42;
245pub const ZVEC_DATA_TYPE_ARRAY_INT32: zvec_data_type_t = 43;
247pub const ZVEC_DATA_TYPE_ARRAY_INT64: zvec_data_type_t = 44;
249pub const ZVEC_DATA_TYPE_ARRAY_UINT32: zvec_data_type_t = 45;
251pub const ZVEC_DATA_TYPE_ARRAY_UINT64: zvec_data_type_t = 46;
253pub const ZVEC_DATA_TYPE_ARRAY_FLOAT: zvec_data_type_t = 47;
255pub const ZVEC_DATA_TYPE_ARRAY_DOUBLE: zvec_data_type_t = 48;
257
258pub const ZVEC_INDEX_TYPE_UNDEFINED: zvec_index_type_t = 0;
264pub const ZVEC_INDEX_TYPE_HNSW: zvec_index_type_t = 1;
266pub const ZVEC_INDEX_TYPE_IVF: zvec_index_type_t = 2;
268pub const ZVEC_INDEX_TYPE_FLAT: zvec_index_type_t = 3;
270pub const ZVEC_INDEX_TYPE_INVERT: zvec_index_type_t = 10;
272pub const ZVEC_INDEX_TYPE_FTS: zvec_index_type_t = 11;
274
275pub const ZVEC_METRIC_TYPE_UNDEFINED: zvec_metric_type_t = 0;
281pub const ZVEC_METRIC_TYPE_L2: zvec_metric_type_t = 1;
283pub const ZVEC_METRIC_TYPE_IP: zvec_metric_type_t = 2;
285pub const ZVEC_METRIC_TYPE_COSINE: zvec_metric_type_t = 3;
287pub const ZVEC_METRIC_TYPE_MIPSL2: zvec_metric_type_t = 4;
289
290pub const ZVEC_QUANTIZE_TYPE_UNDEFINED: zvec_quantize_type_t = 0;
296pub const ZVEC_QUANTIZE_TYPE_FP16: zvec_quantize_type_t = 1;
298pub const ZVEC_QUANTIZE_TYPE_INT8: zvec_quantize_type_t = 2;
300pub const ZVEC_QUANTIZE_TYPE_INT4: zvec_quantize_type_t = 3;
302
303pub const ZVEC_LOG_LEVEL_DEBUG: zvec_log_level_t = 0;
309pub const ZVEC_LOG_LEVEL_INFO: zvec_log_level_t = 1;
311pub const ZVEC_LOG_LEVEL_WARN: zvec_log_level_t = 2;
313pub const ZVEC_LOG_LEVEL_ERROR: zvec_log_level_t = 3;
315pub const ZVEC_LOG_LEVEL_FATAL: zvec_log_level_t = 4;
317
318pub const ZVEC_LOG_TYPE_CONSOLE: zvec_log_type_t = 0;
324pub const ZVEC_LOG_TYPE_FILE: zvec_log_type_t = 1;
326
327pub const ZVEC_DOC_OP_INSERT: zvec_doc_operator_t = 0;
333pub const ZVEC_DOC_OP_UPDATE: zvec_doc_operator_t = 1;
335pub const ZVEC_DOC_OP_UPSERT: zvec_doc_operator_t = 2;
337pub const ZVEC_DOC_OP_DELETE: zvec_doc_operator_t = 3;
339
340#[repr(C)]
346pub struct zvec_string_view_t {
347 pub data: *const c_char,
348 pub length: usize,
349}
350
351#[repr(C)]
353pub struct zvec_string_t {
354 pub data: *mut c_char,
355 pub length: usize,
356 pub capacity: usize,
357}
358
359#[repr(C)]
361pub struct zvec_string_array_t {
362 pub strings: *mut zvec_string_t,
363 pub count: usize,
364}
365
366#[repr(C)]
368pub struct zvec_float_array_t {
369 pub data: *const f32,
370 pub length: usize,
371}
372
373#[repr(C)]
375pub struct zvec_int64_array_t {
376 pub data: *const i64,
377 pub length: usize,
378}
379
380#[repr(C)]
382pub struct zvec_byte_array_t {
383 pub data: *const u8,
384 pub length: usize,
385}
386
387#[repr(C)]
389pub struct zvec_mutable_byte_array_t {
390 pub data: *mut u8,
391 pub length: usize,
392 pub capacity: usize,
393}
394
395#[repr(C)]
397pub struct zvec_write_result_t {
398 pub code: zvec_error_code_t,
399 pub message: *const c_char,
400}
401
402#[repr(C)]
404pub struct zvec_error_details_t {
405 pub code: zvec_error_code_t,
406 pub message: *const c_char,
407 pub file: *const c_char,
408 pub line: c_int,
409 pub function: *const c_char,
410}
411
412extern "C" {
417 pub fn zvec_get_version() -> *const c_char;
422 pub fn zvec_check_version(major: c_int, minor: c_int, patch: c_int) -> bool;
423 pub fn zvec_get_version_major() -> c_int;
424 pub fn zvec_get_version_minor() -> c_int;
425 pub fn zvec_get_version_patch() -> c_int;
426
427 pub fn zvec_get_last_error_details(
432 error_details: *mut zvec_error_details_t,
433 ) -> zvec_error_code_t;
434 pub fn zvec_get_last_error(error_msg: *mut *mut c_char) -> zvec_error_code_t;
435 pub fn zvec_clear_error();
436 pub fn zvec_error_code_to_string(error_code: zvec_error_code_t) -> *const c_char;
437
438 pub fn zvec_string_create(str: *const c_char) -> *mut zvec_string_t;
443 pub fn zvec_string_create_from_view(view: *const zvec_string_view_t) -> *mut zvec_string_t;
444 pub fn zvec_bin_create(data: *const u8, length: usize) -> *mut zvec_string_t;
445 pub fn zvec_string_copy(str: *const zvec_string_t) -> *mut zvec_string_t;
446 pub fn zvec_string_c_str(str: *const zvec_string_t) -> *const c_char;
447 pub fn zvec_string_length(str: *const zvec_string_t) -> usize;
448 pub fn zvec_string_compare(str1: *const zvec_string_t, str2: *const zvec_string_t) -> c_int;
449 pub fn zvec_free_string(str: *mut zvec_string_t);
450
451 pub fn zvec_string_array_create(count: usize) -> *mut zvec_string_array_t;
456 pub fn zvec_string_array_add(array: *mut zvec_string_array_t, idx: usize, str: *const c_char);
457 pub fn zvec_string_array_destroy(array: *mut zvec_string_array_t);
458 pub fn zvec_byte_array_create(capacity: usize) -> *mut zvec_mutable_byte_array_t;
459 pub fn zvec_byte_array_destroy(array: *mut zvec_mutable_byte_array_t);
460 pub fn zvec_float_array_create(count: usize) -> *mut zvec_float_array_t;
461 pub fn zvec_float_array_destroy(array: *mut zvec_float_array_t);
462 pub fn zvec_int64_array_create(count: usize) -> *mut zvec_int64_array_t;
463 pub fn zvec_int64_array_destroy(array: *mut zvec_int64_array_t);
464 pub fn zvec_free_uint8_array(array: *mut u8);
465
466 pub fn zvec_malloc(size: usize) -> *mut c_void;
471 pub fn zvec_free(ptr: *mut c_void);
472
473 pub fn zvec_config_log_create_console(level: zvec_log_level_t) -> *mut zvec_log_config_t;
478 pub fn zvec_config_log_create_file(
479 level: zvec_log_level_t,
480 dir: *const c_char,
481 basename: *const c_char,
482 file_size: u32,
483 overdue_days: u32,
484 ) -> *mut zvec_log_config_t;
485 pub fn zvec_config_log_destroy(config: *mut zvec_log_config_t);
486 pub fn zvec_config_log_get_level(config: *const zvec_log_config_t) -> zvec_log_level_t;
487 pub fn zvec_config_log_set_level(
488 config: *mut zvec_log_config_t,
489 level: zvec_log_level_t,
490 ) -> zvec_error_code_t;
491 pub fn zvec_config_log_is_file_type(config: *const zvec_log_config_t) -> bool;
492 pub fn zvec_config_log_get_dir(config: *const zvec_log_config_t) -> *const c_char;
493 pub fn zvec_config_log_set_dir(
494 config: *mut zvec_log_config_t,
495 dir: *const c_char,
496 ) -> zvec_error_code_t;
497 pub fn zvec_config_log_get_basename(config: *const zvec_log_config_t) -> *const c_char;
498 pub fn zvec_config_log_set_basename(
499 config: *mut zvec_log_config_t,
500 basename: *const c_char,
501 ) -> zvec_error_code_t;
502 pub fn zvec_config_log_get_file_size(config: *const zvec_log_config_t) -> u32;
503 pub fn zvec_config_log_set_file_size(
504 config: *mut zvec_log_config_t,
505 file_size: u32,
506 ) -> zvec_error_code_t;
507 pub fn zvec_config_log_get_overdue_days(config: *const zvec_log_config_t) -> u32;
508 pub fn zvec_config_log_set_overdue_days(
509 config: *mut zvec_log_config_t,
510 days: u32,
511 ) -> zvec_error_code_t;
512
513 pub fn zvec_config_data_create() -> *mut zvec_config_data_t;
518 pub fn zvec_config_data_destroy(config: *mut zvec_config_data_t);
519 pub fn zvec_config_data_set_memory_limit(
520 config: *mut zvec_config_data_t,
521 memory_limit_bytes: u64,
522 ) -> zvec_error_code_t;
523 pub fn zvec_config_data_get_memory_limit(config: *const zvec_config_data_t) -> u64;
524 pub fn zvec_config_data_set_log_config(
525 config: *mut zvec_config_data_t,
526 log_config: *mut zvec_log_config_t,
527 ) -> zvec_error_code_t;
528 pub fn zvec_config_data_get_log_type(config: *const zvec_config_data_t) -> zvec_log_type_t;
529 pub fn zvec_config_data_set_query_thread_count(
530 config: *mut zvec_config_data_t,
531 thread_count: u32,
532 ) -> zvec_error_code_t;
533 pub fn zvec_config_data_get_query_thread_count(config: *const zvec_config_data_t) -> u32;
534 pub fn zvec_config_data_set_invert_to_forward_scan_ratio(
535 config: *mut zvec_config_data_t,
536 ratio: f32,
537 ) -> zvec_error_code_t;
538 pub fn zvec_config_data_get_invert_to_forward_scan_ratio(
539 config: *const zvec_config_data_t,
540 ) -> f32;
541 pub fn zvec_config_data_set_brute_force_by_keys_ratio(
542 config: *mut zvec_config_data_t,
543 ratio: f32,
544 ) -> zvec_error_code_t;
545 pub fn zvec_config_data_get_brute_force_by_keys_ratio(config: *const zvec_config_data_t)
546 -> f32;
547 pub fn zvec_config_data_set_fts_brute_force_by_keys_ratio(
548 config: *mut zvec_config_data_t,
549 ratio: f32,
550 ) -> zvec_error_code_t;
551 pub fn zvec_config_data_get_fts_brute_force_by_keys_ratio(
552 config: *const zvec_config_data_t,
553 ) -> f32;
554 pub fn zvec_config_data_set_optimize_thread_count(
555 config: *mut zvec_config_data_t,
556 thread_count: u32,
557 ) -> zvec_error_code_t;
558 pub fn zvec_config_data_get_optimize_thread_count(config: *const zvec_config_data_t) -> u32;
559
560 pub fn zvec_initialize(config: *const zvec_config_data_t) -> zvec_error_code_t;
565 pub fn zvec_shutdown() -> zvec_error_code_t;
566 pub fn zvec_is_initialized() -> bool;
567
568 pub fn zvec_index_params_create(index_type: zvec_index_type_t) -> *mut zvec_index_params_t;
573 pub fn zvec_index_params_destroy(params: *mut zvec_index_params_t);
574 pub fn zvec_index_params_get_type(params: *const zvec_index_params_t) -> zvec_index_type_t;
575 pub fn zvec_index_params_set_metric_type(
576 params: *mut zvec_index_params_t,
577 metric_type: zvec_metric_type_t,
578 ) -> zvec_error_code_t;
579 pub fn zvec_index_params_get_metric_type(
580 params: *const zvec_index_params_t,
581 ) -> zvec_metric_type_t;
582 pub fn zvec_index_params_set_quantize_type(
583 params: *mut zvec_index_params_t,
584 quantize_type: zvec_quantize_type_t,
585 ) -> zvec_error_code_t;
586 pub fn zvec_index_params_get_quantize_type(
587 params: *const zvec_index_params_t,
588 ) -> zvec_quantize_type_t;
589 pub fn zvec_index_params_set_hnsw_params(
590 params: *mut zvec_index_params_t,
591 m: c_int,
592 ef_construction: c_int,
593 ) -> zvec_error_code_t;
594 pub fn zvec_index_params_get_hnsw_m(params: *const zvec_index_params_t) -> c_int;
595 pub fn zvec_index_params_get_hnsw_ef_construction(params: *const zvec_index_params_t) -> c_int;
596 pub fn zvec_index_params_set_ivf_params(
597 params: *mut zvec_index_params_t,
598 n_list: c_int,
599 n_iters: c_int,
600 use_soar: bool,
601 ) -> zvec_error_code_t;
602 pub fn zvec_index_params_get_ivf_params(
603 params: *const zvec_index_params_t,
604 out_n_list: *mut c_int,
605 out_n_iters: *mut c_int,
606 out_use_soar: *mut bool,
607 ) -> zvec_error_code_t;
608 pub fn zvec_index_params_set_invert_params(
609 params: *mut zvec_index_params_t,
610 enable_range_opt: bool,
611 enable_wildcard: bool,
612 ) -> zvec_error_code_t;
613 pub fn zvec_index_params_get_invert_params(
614 params: *const zvec_index_params_t,
615 out_enable_range_opt: *mut bool,
616 out_enable_wildcard: *mut bool,
617 ) -> zvec_error_code_t;
618 pub fn zvec_index_params_set_fts_params(
619 params: *mut zvec_index_params_t,
620 tokenizer_name: *const c_char,
621 filters: *const zvec_string_array_t,
622 extra_params: *const c_char,
623 ) -> zvec_error_code_t;
624 pub fn zvec_index_params_get_fts_params(
625 params: *const zvec_index_params_t,
626 out_tokenizer_name: *mut *const c_char,
627 out_filters: *mut *mut zvec_string_array_t,
628 out_extra_params: *mut *const c_char,
629 ) -> zvec_error_code_t;
630
631 pub fn zvec_field_schema_create(
636 name: *const c_char,
637 data_type: zvec_data_type_t,
638 nullable: bool,
639 dimension: u32,
640 ) -> *mut zvec_field_schema_t;
641 pub fn zvec_field_schema_destroy(schema: *mut zvec_field_schema_t);
642 pub fn zvec_field_schema_set_name(
643 schema: *mut zvec_field_schema_t,
644 name: *const c_char,
645 ) -> zvec_error_code_t;
646 pub fn zvec_field_schema_get_name(schema: *const zvec_field_schema_t) -> *const c_char;
647 pub fn zvec_field_schema_get_data_type(schema: *const zvec_field_schema_t) -> zvec_data_type_t;
648 pub fn zvec_field_schema_set_data_type(
649 schema: *mut zvec_field_schema_t,
650 data_type: zvec_data_type_t,
651 ) -> zvec_error_code_t;
652 pub fn zvec_field_schema_get_element_data_type(
653 schema: *const zvec_field_schema_t,
654 ) -> zvec_data_type_t;
655 pub fn zvec_field_schema_get_element_data_size(schema: *const zvec_field_schema_t) -> usize;
656 pub fn zvec_field_schema_is_vector_field(schema: *const zvec_field_schema_t) -> bool;
657 pub fn zvec_field_schema_is_dense_vector(schema: *const zvec_field_schema_t) -> bool;
658 pub fn zvec_field_schema_is_sparse_vector(schema: *const zvec_field_schema_t) -> bool;
659 pub fn zvec_field_schema_is_nullable(schema: *const zvec_field_schema_t) -> bool;
660 pub fn zvec_field_schema_set_nullable(
661 schema: *mut zvec_field_schema_t,
662 nullable: bool,
663 ) -> zvec_error_code_t;
664 pub fn zvec_field_schema_has_invert_index(schema: *const zvec_field_schema_t) -> bool;
665 pub fn zvec_field_schema_is_array_type(schema: *const zvec_field_schema_t) -> bool;
666 pub fn zvec_field_schema_get_dimension(schema: *const zvec_field_schema_t) -> u32;
667 pub fn zvec_field_schema_set_dimension(
668 schema: *mut zvec_field_schema_t,
669 dimension: u32,
670 ) -> zvec_error_code_t;
671 pub fn zvec_field_schema_get_index_type(
672 schema: *const zvec_field_schema_t,
673 ) -> zvec_index_type_t;
674 pub fn zvec_field_schema_has_index(schema: *const zvec_field_schema_t) -> bool;
675 pub fn zvec_field_schema_get_index_params(
676 schema: *const zvec_field_schema_t,
677 ) -> *const zvec_index_params_t;
678 pub fn zvec_field_schema_set_index_params(
679 schema: *mut zvec_field_schema_t,
680 index_params: *const zvec_index_params_t,
681 ) -> zvec_error_code_t;
682 pub fn zvec_field_schema_validate(
683 schema: *const zvec_field_schema_t,
684 error_msg: *mut *mut zvec_string_t,
685 ) -> zvec_error_code_t;
686
687 pub fn zvec_collection_schema_create(name: *const c_char) -> *mut zvec_collection_schema_t;
692 pub fn zvec_collection_schema_destroy(schema: *mut zvec_collection_schema_t);
693 pub fn zvec_collection_schema_get_name(
694 schema: *const zvec_collection_schema_t,
695 ) -> *const c_char;
696 pub fn zvec_collection_schema_set_name(
697 schema: *mut zvec_collection_schema_t,
698 name: *const c_char,
699 ) -> zvec_error_code_t;
700 pub fn zvec_collection_schema_add_field(
701 schema: *mut zvec_collection_schema_t,
702 field: *const zvec_field_schema_t,
703 ) -> zvec_error_code_t;
704 pub fn zvec_collection_schema_alter_field(
705 schema: *mut zvec_collection_schema_t,
706 field_name: *const c_char,
707 new_field: *const zvec_field_schema_t,
708 ) -> zvec_error_code_t;
709 pub fn zvec_collection_schema_drop_field(
710 schema: *mut zvec_collection_schema_t,
711 field_name: *const c_char,
712 ) -> zvec_error_code_t;
713 pub fn zvec_collection_schema_has_field(
714 schema: *const zvec_collection_schema_t,
715 field_name: *const c_char,
716 ) -> bool;
717 pub fn zvec_collection_schema_get_field(
718 schema: *const zvec_collection_schema_t,
719 field_name: *const c_char,
720 ) -> *mut zvec_field_schema_t;
721 pub fn zvec_collection_schema_get_forward_field(
722 schema: *const zvec_collection_schema_t,
723 field_name: *const c_char,
724 ) -> *mut zvec_field_schema_t;
725 pub fn zvec_collection_schema_get_vector_field(
726 schema: *const zvec_collection_schema_t,
727 field_name: *const c_char,
728 ) -> *mut zvec_field_schema_t;
729 pub fn zvec_collection_schema_get_forward_fields(
730 schema: *const zvec_collection_schema_t,
731 fields: *mut *mut *mut zvec_field_schema_t,
732 count: *mut usize,
733 ) -> zvec_error_code_t;
734 pub fn zvec_collection_schema_get_forward_fields_with_index(
735 schema: *const zvec_collection_schema_t,
736 fields: *mut *mut *mut zvec_field_schema_t,
737 count: *mut usize,
738 ) -> zvec_error_code_t;
739 pub fn zvec_collection_schema_get_forward_field_names(
740 schema: *const zvec_collection_schema_t,
741 names: *mut *mut *const c_char,
742 count: *mut usize,
743 ) -> zvec_error_code_t;
744 pub fn zvec_collection_schema_get_forward_field_names_with_index(
745 schema: *const zvec_collection_schema_t,
746 names: *mut *mut *const c_char,
747 count: *mut usize,
748 ) -> zvec_error_code_t;
749 pub fn zvec_collection_schema_get_all_field_names(
750 schema: *const zvec_collection_schema_t,
751 names: *mut *mut *const c_char,
752 count: *mut usize,
753 ) -> zvec_error_code_t;
754 pub fn zvec_collection_schema_get_vector_fields(
755 schema: *const zvec_collection_schema_t,
756 fields: *mut *mut *mut zvec_field_schema_t,
757 count: *mut usize,
758 ) -> zvec_error_code_t;
759 pub fn zvec_collection_schema_get_max_doc_count_per_segment(
760 schema: *const zvec_collection_schema_t,
761 ) -> u64;
762 pub fn zvec_collection_schema_set_max_doc_count_per_segment(
763 schema: *mut zvec_collection_schema_t,
764 max_doc_count: u64,
765 ) -> zvec_error_code_t;
766 pub fn zvec_collection_schema_validate(
767 schema: *const zvec_collection_schema_t,
768 error_msg: *mut *mut zvec_string_t,
769 ) -> zvec_error_code_t;
770 pub fn zvec_collection_schema_add_index(
771 schema: *mut zvec_collection_schema_t,
772 field_name: *const c_char,
773 index_params: *const zvec_index_params_t,
774 ) -> zvec_error_code_t;
775 pub fn zvec_collection_schema_drop_index(
776 schema: *mut zvec_collection_schema_t,
777 field_name: *const c_char,
778 ) -> zvec_error_code_t;
779 pub fn zvec_collection_schema_has_index(
780 schema: *const zvec_collection_schema_t,
781 field_name: *const c_char,
782 ) -> bool;
783
784 pub fn zvec_collection_options_create() -> *mut zvec_collection_options_t;
789 pub fn zvec_collection_options_destroy(options: *mut zvec_collection_options_t);
790 pub fn zvec_collection_options_set_enable_mmap(
791 options: *mut zvec_collection_options_t,
792 enable: bool,
793 ) -> zvec_error_code_t;
794 pub fn zvec_collection_options_get_enable_mmap(
795 options: *const zvec_collection_options_t,
796 ) -> bool;
797 pub fn zvec_collection_options_set_max_buffer_size(
798 options: *mut zvec_collection_options_t,
799 size: usize,
800 ) -> zvec_error_code_t;
801 pub fn zvec_collection_options_get_max_buffer_size(
802 options: *const zvec_collection_options_t,
803 ) -> usize;
804 pub fn zvec_collection_options_set_read_only(
805 options: *mut zvec_collection_options_t,
806 read_only: bool,
807 ) -> zvec_error_code_t;
808 pub fn zvec_collection_options_get_read_only(options: *const zvec_collection_options_t)
809 -> bool;
810
811 pub fn zvec_collection_stats_get_doc_count(stats: *const zvec_collection_stats_t) -> u64;
816 pub fn zvec_collection_stats_get_index_count(stats: *const zvec_collection_stats_t) -> usize;
817 pub fn zvec_collection_stats_get_index_name(
818 stats: *const zvec_collection_stats_t,
819 index: usize,
820 ) -> *const c_char;
821 pub fn zvec_collection_stats_get_index_completeness(
822 stats: *const zvec_collection_stats_t,
823 index: usize,
824 ) -> f32;
825 pub fn zvec_collection_stats_destroy(stats: *mut zvec_collection_stats_t);
826
827 pub fn zvec_collection_create_and_open(
832 path: *const c_char,
833 schema: *const zvec_collection_schema_t,
834 options: *const zvec_collection_options_t,
835 collection: *mut *mut zvec_collection_t,
836 ) -> zvec_error_code_t;
837 pub fn zvec_collection_open(
838 path: *const c_char,
839 options: *const zvec_collection_options_t,
840 collection: *mut *mut zvec_collection_t,
841 ) -> zvec_error_code_t;
842 pub fn zvec_collection_close(collection: *mut zvec_collection_t) -> zvec_error_code_t;
843 pub fn zvec_collection_destroy(collection: *mut zvec_collection_t) -> zvec_error_code_t;
844 pub fn zvec_collection_flush(collection: *mut zvec_collection_t) -> zvec_error_code_t;
845 pub fn zvec_collection_get_schema(
846 collection: *const zvec_collection_t,
847 schema: *mut *mut zvec_collection_schema_t,
848 ) -> zvec_error_code_t;
849 pub fn zvec_collection_get_options(
850 collection: *const zvec_collection_t,
851 options: *mut *mut zvec_collection_options_t,
852 ) -> zvec_error_code_t;
853 pub fn zvec_collection_get_stats(
854 collection: *const zvec_collection_t,
855 stats: *mut *mut zvec_collection_stats_t,
856 ) -> zvec_error_code_t;
857 pub fn zvec_free_field_schema(field_schema: *mut zvec_field_schema_t);
858
859 pub fn zvec_collection_create_index(
864 collection: *mut zvec_collection_t,
865 field_name: *const c_char,
866 index_params: *const zvec_index_params_t,
867 ) -> zvec_error_code_t;
868 pub fn zvec_collection_drop_index(
869 collection: *mut zvec_collection_t,
870 field_name: *const c_char,
871 ) -> zvec_error_code_t;
872 pub fn zvec_collection_optimize(collection: *mut zvec_collection_t) -> zvec_error_code_t;
873
874 pub fn zvec_collection_add_column(
879 collection: *mut zvec_collection_t,
880 field_schema: *const zvec_field_schema_t,
881 expression: *const c_char,
882 ) -> zvec_error_code_t;
883 pub fn zvec_collection_drop_column(
884 collection: *mut zvec_collection_t,
885 column_name: *const c_char,
886 ) -> zvec_error_code_t;
887 pub fn zvec_collection_alter_column(
888 collection: *mut zvec_collection_t,
889 column_name: *const c_char,
890 new_name: *const c_char,
891 new_schema: *const zvec_field_schema_t,
892 ) -> zvec_error_code_t;
893
894 pub fn zvec_collection_insert(
899 collection: *mut zvec_collection_t,
900 docs: *const *const zvec_doc_t,
901 doc_count: usize,
902 success_count: *mut usize,
903 error_count: *mut usize,
904 ) -> zvec_error_code_t;
905 pub fn zvec_collection_insert_with_results(
906 collection: *mut zvec_collection_t,
907 docs: *const *const zvec_doc_t,
908 doc_count: usize,
909 results: *mut *mut zvec_write_result_t,
910 result_count: *mut usize,
911 ) -> zvec_error_code_t;
912 pub fn zvec_collection_update(
913 collection: *mut zvec_collection_t,
914 docs: *const *const zvec_doc_t,
915 doc_count: usize,
916 success_count: *mut usize,
917 error_count: *mut usize,
918 ) -> zvec_error_code_t;
919 pub fn zvec_collection_update_with_results(
920 collection: *mut zvec_collection_t,
921 docs: *const *const zvec_doc_t,
922 doc_count: usize,
923 results: *mut *mut zvec_write_result_t,
924 result_count: *mut usize,
925 ) -> zvec_error_code_t;
926 pub fn zvec_collection_upsert(
927 collection: *mut zvec_collection_t,
928 docs: *const *const zvec_doc_t,
929 doc_count: usize,
930 success_count: *mut usize,
931 error_count: *mut usize,
932 ) -> zvec_error_code_t;
933 pub fn zvec_collection_upsert_with_results(
934 collection: *mut zvec_collection_t,
935 docs: *const *const zvec_doc_t,
936 doc_count: usize,
937 results: *mut *mut zvec_write_result_t,
938 result_count: *mut usize,
939 ) -> zvec_error_code_t;
940 pub fn zvec_collection_delete(
941 collection: *mut zvec_collection_t,
942 pks: *const *const c_char,
943 pk_count: usize,
944 success_count: *mut usize,
945 error_count: *mut usize,
946 ) -> zvec_error_code_t;
947 pub fn zvec_collection_delete_with_results(
948 collection: *mut zvec_collection_t,
949 pks: *const *const c_char,
950 pk_count: usize,
951 results: *mut *mut zvec_write_result_t,
952 result_count: *mut usize,
953 ) -> zvec_error_code_t;
954 pub fn zvec_write_results_free(results: *mut zvec_write_result_t, result_count: usize);
955 pub fn zvec_collection_delete_by_filter(
956 collection: *mut zvec_collection_t,
957 filter: *const c_char,
958 ) -> zvec_error_code_t;
959
960 pub fn zvec_collection_query(
965 collection: *const zvec_collection_t,
966 query: *const zvec_vector_query_t,
967 results: *mut *mut *mut zvec_doc_t,
968 result_count: *mut usize,
969 ) -> zvec_error_code_t;
970 pub fn zvec_collection_multi_query(
971 collection: *const zvec_collection_t,
972 query: *const zvec_multi_query_t,
973 results: *mut *mut *mut zvec_doc_t,
974 result_count: *mut usize,
975 ) -> zvec_error_code_t;
976 pub fn zvec_collection_fetch(
977 collection: *mut zvec_collection_t,
978 primary_keys: *const *const c_char,
979 count: usize,
980 output_fields: *const *const c_char,
981 output_field_count: usize,
982 include_vector: bool,
983 documents: *mut *mut *mut zvec_doc_t,
984 found_count: *mut usize,
985 ) -> zvec_error_code_t;
986
987 pub fn zvec_query_params_hnsw_create(
992 ef: c_int,
993 radius: f32,
994 is_linear: bool,
995 is_using_refiner: bool,
996 ) -> *mut zvec_hnsw_query_params_t;
997 pub fn zvec_query_params_hnsw_destroy(params: *mut zvec_hnsw_query_params_t);
998 pub fn zvec_query_params_hnsw_set_ef(
999 params: *mut zvec_hnsw_query_params_t,
1000 ef: c_int,
1001 ) -> zvec_error_code_t;
1002 pub fn zvec_query_params_hnsw_get_ef(params: *const zvec_hnsw_query_params_t) -> c_int;
1003 pub fn zvec_query_params_hnsw_set_radius(
1004 params: *mut zvec_hnsw_query_params_t,
1005 radius: f32,
1006 ) -> zvec_error_code_t;
1007 pub fn zvec_query_params_hnsw_get_radius(params: *const zvec_hnsw_query_params_t) -> f32;
1008 pub fn zvec_query_params_hnsw_set_is_linear(
1009 params: *mut zvec_hnsw_query_params_t,
1010 is_linear: bool,
1011 ) -> zvec_error_code_t;
1012 pub fn zvec_query_params_hnsw_get_is_linear(params: *const zvec_hnsw_query_params_t) -> bool;
1013 pub fn zvec_query_params_hnsw_set_is_using_refiner(
1014 params: *mut zvec_hnsw_query_params_t,
1015 is_using_refiner: bool,
1016 ) -> zvec_error_code_t;
1017 pub fn zvec_query_params_hnsw_get_is_using_refiner(
1018 params: *const zvec_hnsw_query_params_t,
1019 ) -> bool;
1020
1021 pub fn zvec_query_params_ivf_create(
1026 nprobe: c_int,
1027 is_using_refiner: bool,
1028 scale_factor: f32,
1029 ) -> *mut zvec_ivf_query_params_t;
1030 pub fn zvec_query_params_ivf_destroy(params: *mut zvec_ivf_query_params_t);
1031 pub fn zvec_query_params_ivf_set_nprobe(
1032 params: *mut zvec_ivf_query_params_t,
1033 nprobe: c_int,
1034 ) -> zvec_error_code_t;
1035 pub fn zvec_query_params_ivf_get_nprobe(params: *const zvec_ivf_query_params_t) -> c_int;
1036 pub fn zvec_query_params_ivf_set_scale_factor(
1037 params: *mut zvec_ivf_query_params_t,
1038 scale_factor: f32,
1039 ) -> zvec_error_code_t;
1040 pub fn zvec_query_params_ivf_get_scale_factor(params: *const zvec_ivf_query_params_t) -> f32;
1041 pub fn zvec_query_params_ivf_set_radius(
1042 params: *mut zvec_ivf_query_params_t,
1043 radius: f32,
1044 ) -> zvec_error_code_t;
1045 pub fn zvec_query_params_ivf_get_radius(params: *const zvec_ivf_query_params_t) -> f32;
1046 pub fn zvec_query_params_ivf_set_is_linear(
1047 params: *mut zvec_ivf_query_params_t,
1048 is_linear: bool,
1049 ) -> zvec_error_code_t;
1050 pub fn zvec_query_params_ivf_get_is_linear(params: *const zvec_ivf_query_params_t) -> bool;
1051 pub fn zvec_query_params_ivf_set_is_using_refiner(
1052 params: *mut zvec_ivf_query_params_t,
1053 is_using_refiner: bool,
1054 ) -> zvec_error_code_t;
1055 pub fn zvec_query_params_ivf_get_is_using_refiner(
1056 params: *const zvec_ivf_query_params_t,
1057 ) -> bool;
1058
1059 pub fn zvec_query_params_flat_create(
1064 is_using_refiner: bool,
1065 scale_factor: f32,
1066 ) -> *mut zvec_flat_query_params_t;
1067 pub fn zvec_query_params_flat_destroy(params: *mut zvec_flat_query_params_t);
1068 pub fn zvec_query_params_flat_set_scale_factor(
1069 params: *mut zvec_flat_query_params_t,
1070 scale_factor: f32,
1071 ) -> zvec_error_code_t;
1072 pub fn zvec_query_params_flat_get_scale_factor(params: *const zvec_flat_query_params_t) -> f32;
1073 pub fn zvec_query_params_flat_set_radius(
1074 params: *mut zvec_flat_query_params_t,
1075 radius: f32,
1076 ) -> zvec_error_code_t;
1077 pub fn zvec_query_params_flat_get_radius(params: *const zvec_flat_query_params_t) -> f32;
1078 pub fn zvec_query_params_flat_set_is_linear(
1079 params: *mut zvec_flat_query_params_t,
1080 is_linear: bool,
1081 ) -> zvec_error_code_t;
1082 pub fn zvec_query_params_flat_get_is_linear(params: *const zvec_flat_query_params_t) -> bool;
1083 pub fn zvec_query_params_flat_set_is_using_refiner(
1084 params: *mut zvec_flat_query_params_t,
1085 is_using_refiner: bool,
1086 ) -> zvec_error_code_t;
1087 pub fn zvec_query_params_flat_get_is_using_refiner(
1088 params: *const zvec_flat_query_params_t,
1089 ) -> bool;
1090
1091 pub fn zvec_query_params_fts_create(
1096 default_operator: *const c_char,
1097 ) -> *mut zvec_fts_query_params_t;
1098 pub fn zvec_query_params_fts_destroy(params: *mut zvec_fts_query_params_t);
1099 pub fn zvec_query_params_fts_set_default_operator(
1100 params: *mut zvec_fts_query_params_t,
1101 default_operator: *const c_char,
1102 ) -> zvec_error_code_t;
1103 pub fn zvec_query_params_fts_get_default_operator(
1104 params: *const zvec_fts_query_params_t,
1105 ) -> *const c_char;
1106
1107 pub fn zvec_fts_create() -> *mut zvec_fts_t;
1112 pub fn zvec_fts_destroy(fts: *mut zvec_fts_t);
1113 pub fn zvec_fts_set_query_string(
1114 fts: *mut zvec_fts_t,
1115 query_string: *const c_char,
1116 ) -> zvec_error_code_t;
1117 pub fn zvec_fts_set_match_string(
1118 fts: *mut zvec_fts_t,
1119 match_string: *const c_char,
1120 ) -> zvec_error_code_t;
1121 pub fn zvec_fts_get_query_string(fts: *const zvec_fts_t) -> *const c_char;
1122 pub fn zvec_fts_get_match_string(fts: *const zvec_fts_t) -> *const c_char;
1123
1124 pub fn zvec_vector_query_create() -> *mut zvec_vector_query_t;
1129 pub fn zvec_vector_query_destroy(query: *mut zvec_vector_query_t);
1130 pub fn zvec_vector_query_set_topk(
1131 query: *mut zvec_vector_query_t,
1132 topk: c_int,
1133 ) -> zvec_error_code_t;
1134 pub fn zvec_vector_query_get_topk(query: *const zvec_vector_query_t) -> c_int;
1135 pub fn zvec_vector_query_set_field_name(
1136 query: *mut zvec_vector_query_t,
1137 field_name: *const c_char,
1138 ) -> zvec_error_code_t;
1139 pub fn zvec_vector_query_get_field_name(query: *const zvec_vector_query_t) -> *const c_char;
1140 pub fn zvec_vector_query_set_query_vector(
1141 query: *mut zvec_vector_query_t,
1142 data: *const c_void,
1143 size: usize,
1144 ) -> zvec_error_code_t;
1145 pub fn zvec_vector_query_set_filter(
1146 query: *mut zvec_vector_query_t,
1147 filter: *const c_char,
1148 ) -> zvec_error_code_t;
1149 pub fn zvec_vector_query_get_filter(query: *const zvec_vector_query_t) -> *const c_char;
1150 pub fn zvec_vector_query_set_include_vector(
1151 query: *mut zvec_vector_query_t,
1152 include: bool,
1153 ) -> zvec_error_code_t;
1154 pub fn zvec_vector_query_get_include_vector(query: *const zvec_vector_query_t) -> bool;
1155 pub fn zvec_vector_query_set_include_doc_id(
1156 query: *mut zvec_vector_query_t,
1157 include: bool,
1158 ) -> zvec_error_code_t;
1159 pub fn zvec_vector_query_get_include_doc_id(query: *const zvec_vector_query_t) -> bool;
1160 pub fn zvec_vector_query_set_output_fields(
1161 query: *mut zvec_vector_query_t,
1162 fields: *const *const c_char,
1163 count: usize,
1164 ) -> zvec_error_code_t;
1165 pub fn zvec_vector_query_get_output_fields(
1166 query: *const zvec_vector_query_t,
1167 fields: *mut *mut *const c_char,
1168 count: *mut usize,
1169 ) -> zvec_error_code_t;
1170 pub fn zvec_vector_query_set_query_params(
1171 query: *mut zvec_vector_query_t,
1172 params: *mut c_void,
1173 ) -> zvec_error_code_t;
1174 pub fn zvec_vector_query_set_hnsw_params(
1175 query: *mut zvec_vector_query_t,
1176 hnsw_params: *mut zvec_hnsw_query_params_t,
1177 ) -> zvec_error_code_t;
1178 pub fn zvec_vector_query_set_ivf_params(
1179 query: *mut zvec_vector_query_t,
1180 ivf_params: *mut zvec_ivf_query_params_t,
1181 ) -> zvec_error_code_t;
1182 pub fn zvec_vector_query_set_flat_params(
1183 query: *mut zvec_vector_query_t,
1184 flat_params: *mut zvec_flat_query_params_t,
1185 ) -> zvec_error_code_t;
1186 pub fn zvec_vector_query_set_fts_params(
1187 query: *mut zvec_vector_query_t,
1188 fts_params: *mut zvec_fts_query_params_t,
1189 ) -> zvec_error_code_t;
1190 pub fn zvec_vector_query_set_fts(
1191 query: *mut zvec_vector_query_t,
1192 fts: *const zvec_fts_t,
1193 ) -> zvec_error_code_t;
1194 pub fn zvec_vector_query_get_fts(query: *const zvec_vector_query_t) -> *const zvec_fts_t;
1195
1196 pub fn zvec_group_by_vector_query_create() -> *mut zvec_group_by_vector_query_t;
1201 pub fn zvec_group_by_vector_query_destroy(query: *mut zvec_group_by_vector_query_t);
1202 pub fn zvec_group_by_vector_query_set_field_name(
1203 query: *mut zvec_group_by_vector_query_t,
1204 field_name: *const c_char,
1205 ) -> zvec_error_code_t;
1206 pub fn zvec_group_by_vector_query_get_field_name(
1207 query: *const zvec_group_by_vector_query_t,
1208 ) -> *const c_char;
1209 pub fn zvec_group_by_vector_query_set_group_by_field_name(
1210 query: *mut zvec_group_by_vector_query_t,
1211 field_name: *const c_char,
1212 ) -> zvec_error_code_t;
1213 pub fn zvec_group_by_vector_query_get_group_by_field_name(
1214 query: *const zvec_group_by_vector_query_t,
1215 ) -> *const c_char;
1216 pub fn zvec_group_by_vector_query_set_group_count(
1217 query: *mut zvec_group_by_vector_query_t,
1218 count: u32,
1219 ) -> zvec_error_code_t;
1220 pub fn zvec_group_by_vector_query_get_group_count(
1221 query: *const zvec_group_by_vector_query_t,
1222 ) -> u32;
1223 pub fn zvec_group_by_vector_query_set_group_topk(
1224 query: *mut zvec_group_by_vector_query_t,
1225 topk: u32,
1226 ) -> zvec_error_code_t;
1227 pub fn zvec_group_by_vector_query_get_group_topk(
1228 query: *const zvec_group_by_vector_query_t,
1229 ) -> u32;
1230 pub fn zvec_group_by_vector_query_set_query_vector(
1231 query: *mut zvec_group_by_vector_query_t,
1232 data: *const c_void,
1233 size: usize,
1234 ) -> zvec_error_code_t;
1235 pub fn zvec_group_by_vector_query_set_filter(
1236 query: *mut zvec_group_by_vector_query_t,
1237 filter: *const c_char,
1238 ) -> zvec_error_code_t;
1239 pub fn zvec_group_by_vector_query_get_filter(
1240 query: *const zvec_group_by_vector_query_t,
1241 ) -> *const c_char;
1242 pub fn zvec_group_by_vector_query_set_include_vector(
1243 query: *mut zvec_group_by_vector_query_t,
1244 include: bool,
1245 ) -> zvec_error_code_t;
1246 pub fn zvec_group_by_vector_query_get_include_vector(
1247 query: *const zvec_group_by_vector_query_t,
1248 ) -> bool;
1249 pub fn zvec_group_by_vector_query_set_output_fields(
1250 query: *mut zvec_group_by_vector_query_t,
1251 fields: *const *const c_char,
1252 count: usize,
1253 ) -> zvec_error_code_t;
1254 pub fn zvec_group_by_vector_query_get_output_fields(
1255 query: *mut zvec_group_by_vector_query_t,
1256 fields: *mut *mut *const c_char,
1257 count: *mut usize,
1258 ) -> zvec_error_code_t;
1259 pub fn zvec_group_by_vector_query_set_query_params(
1260 query: *mut zvec_group_by_vector_query_t,
1261 params: *mut c_void,
1262 ) -> zvec_error_code_t;
1263 pub fn zvec_group_by_vector_query_set_hnsw_params(
1264 query: *mut zvec_group_by_vector_query_t,
1265 hnsw_params: *mut zvec_hnsw_query_params_t,
1266 ) -> zvec_error_code_t;
1267 pub fn zvec_group_by_vector_query_set_ivf_params(
1268 query: *mut zvec_group_by_vector_query_t,
1269 ivf_params: *mut zvec_ivf_query_params_t,
1270 ) -> zvec_error_code_t;
1271 pub fn zvec_group_by_vector_query_set_flat_params(
1272 query: *mut zvec_group_by_vector_query_t,
1273 flat_params: *mut zvec_flat_query_params_t,
1274 ) -> zvec_error_code_t;
1275
1276 pub fn zvec_multi_query_create() -> *mut zvec_multi_query_t;
1282 pub fn zvec_multi_query_destroy(query: *mut zvec_multi_query_t);
1283 pub fn zvec_multi_query_add_sub_query(
1284 query: *mut zvec_multi_query_t,
1285 sub_query: *const zvec_sub_query_t,
1286 ) -> zvec_error_code_t;
1287 pub fn zvec_multi_query_get_sub_query_count(query: *const zvec_multi_query_t) -> usize;
1288 pub fn zvec_multi_query_set_topk(
1289 query: *mut zvec_multi_query_t,
1290 topk: c_int,
1291 ) -> zvec_error_code_t;
1292 pub fn zvec_multi_query_get_topk(query: *const zvec_multi_query_t) -> c_int;
1293 pub fn zvec_multi_query_set_filter(
1294 query: *mut zvec_multi_query_t,
1295 filter: *const c_char,
1296 ) -> zvec_error_code_t;
1297 pub fn zvec_multi_query_get_filter(query: *const zvec_multi_query_t) -> *const c_char;
1298 pub fn zvec_multi_query_set_include_vector(
1299 query: *mut zvec_multi_query_t,
1300 include: bool,
1301 ) -> zvec_error_code_t;
1302 pub fn zvec_multi_query_get_include_vector(query: *const zvec_multi_query_t) -> bool;
1303 pub fn zvec_multi_query_set_output_fields(
1304 query: *mut zvec_multi_query_t,
1305 fields: *const *const c_char,
1306 count: usize,
1307 ) -> zvec_error_code_t;
1308 pub fn zvec_multi_query_get_output_fields(
1309 query: *mut zvec_multi_query_t,
1310 fields: *mut *mut *const c_char,
1311 count: *mut usize,
1312 ) -> zvec_error_code_t;
1313 pub fn zvec_multi_query_set_rerank_rrf(
1314 query: *mut zvec_multi_query_t,
1315 rank_constant: c_int,
1316 ) -> zvec_error_code_t;
1317 pub fn zvec_multi_query_set_rerank_weighted(
1318 query: *mut zvec_multi_query_t,
1319 weights: *const f64,
1320 weight_count: usize,
1321 ) -> zvec_error_code_t;
1322
1323 pub fn zvec_sub_query_create() -> *mut zvec_sub_query_t;
1324 pub fn zvec_sub_query_destroy(query: *mut zvec_sub_query_t);
1325 pub fn zvec_sub_query_set_num_candidates(
1326 query: *mut zvec_sub_query_t,
1327 num_candidates: c_int,
1328 ) -> zvec_error_code_t;
1329 pub fn zvec_sub_query_get_num_candidates(query: *const zvec_sub_query_t) -> c_int;
1330 pub fn zvec_sub_query_set_field_name(
1331 query: *mut zvec_sub_query_t,
1332 field_name: *const c_char,
1333 ) -> zvec_error_code_t;
1334 pub fn zvec_sub_query_get_field_name(query: *const zvec_sub_query_t) -> *const c_char;
1335 pub fn zvec_sub_query_set_query_vector(
1336 query: *mut zvec_sub_query_t,
1337 data: *const c_void,
1338 size: usize,
1339 ) -> zvec_error_code_t;
1340 pub fn zvec_sub_query_set_sparse_vector(
1341 query: *mut zvec_sub_query_t,
1342 indices: *const u32,
1343 values: *const f32,
1344 count: usize,
1345 ) -> zvec_error_code_t;
1346 pub fn zvec_sub_query_set_sparse_indices(
1347 query: *mut zvec_sub_query_t,
1348 indices: *const u32,
1349 count: usize,
1350 ) -> zvec_error_code_t;
1351 pub fn zvec_sub_query_set_sparse_values(
1352 query: *mut zvec_sub_query_t,
1353 values: *const f32,
1354 count: usize,
1355 ) -> zvec_error_code_t;
1356 pub fn zvec_sub_query_set_hnsw_params(
1357 query: *mut zvec_sub_query_t,
1358 hnsw_params: *mut zvec_hnsw_query_params_t,
1359 ) -> zvec_error_code_t;
1360 pub fn zvec_sub_query_set_ivf_params(
1361 query: *mut zvec_sub_query_t,
1362 ivf_params: *mut zvec_ivf_query_params_t,
1363 ) -> zvec_error_code_t;
1364 pub fn zvec_sub_query_set_flat_params(
1365 query: *mut zvec_sub_query_t,
1366 flat_params: *mut zvec_flat_query_params_t,
1367 ) -> zvec_error_code_t;
1368 pub fn zvec_sub_query_set_fts_params(
1369 query: *mut zvec_sub_query_t,
1370 fts_params: *mut zvec_fts_query_params_t,
1371 ) -> zvec_error_code_t;
1372 pub fn zvec_sub_query_set_fts(
1373 query: *mut zvec_sub_query_t,
1374 fts: *const zvec_fts_t,
1375 ) -> zvec_error_code_t;
1376
1377 pub fn zvec_doc_create() -> *mut zvec_doc_t;
1382 pub fn zvec_doc_destroy(doc: *mut zvec_doc_t);
1383 pub fn zvec_doc_clear(doc: *mut zvec_doc_t);
1384 pub fn zvec_doc_add_field_by_value(
1385 doc: *mut zvec_doc_t,
1386 field_name: *const c_char,
1387 data_type: zvec_data_type_t,
1388 value: *const c_void,
1389 value_size: usize,
1390 ) -> zvec_error_code_t;
1391 pub fn zvec_doc_remove_field(
1392 doc: *mut zvec_doc_t,
1393 field_name: *const c_char,
1394 ) -> zvec_error_code_t;
1395 pub fn zvec_docs_free(documents: *mut *mut zvec_doc_t, count: usize);
1396 pub fn zvec_doc_set_pk(doc: *mut zvec_doc_t, pk: *const c_char);
1397 pub fn zvec_doc_set_doc_id(doc: *mut zvec_doc_t, doc_id: u64);
1398 pub fn zvec_doc_set_score(doc: *mut zvec_doc_t, score: f32);
1399 pub fn zvec_doc_set_operator(doc: *mut zvec_doc_t, op: zvec_doc_operator_t);
1400 pub fn zvec_doc_set_field_null(
1401 doc: *mut zvec_doc_t,
1402 field_name: *const c_char,
1403 ) -> zvec_error_code_t;
1404 pub fn zvec_doc_get_doc_id(doc: *const zvec_doc_t) -> u64;
1405 pub fn zvec_doc_get_score(doc: *const zvec_doc_t) -> f32;
1406 pub fn zvec_doc_get_operator(doc: *const zvec_doc_t) -> zvec_doc_operator_t;
1407 pub fn zvec_doc_get_field_count(doc: *const zvec_doc_t) -> usize;
1408 pub fn zvec_doc_get_pk_pointer(doc: *const zvec_doc_t) -> *const c_char;
1409 pub fn zvec_doc_get_pk_copy(doc: *const zvec_doc_t) -> *const c_char;
1410 pub fn zvec_doc_get_field_value_basic(
1411 doc: *const zvec_doc_t,
1412 field_name: *const c_char,
1413 field_type: zvec_data_type_t,
1414 value_buffer: *mut c_void,
1415 buffer_size: usize,
1416 ) -> zvec_error_code_t;
1417 pub fn zvec_doc_get_field_value_copy(
1418 doc: *const zvec_doc_t,
1419 field_name: *const c_char,
1420 field_type: zvec_data_type_t,
1421 value: *mut *mut c_void,
1422 value_size: *mut usize,
1423 ) -> zvec_error_code_t;
1424 pub fn zvec_doc_get_field_value_pointer(
1425 doc: *const zvec_doc_t,
1426 field_name: *const c_char,
1427 field_type: zvec_data_type_t,
1428 value: *mut *const c_void,
1429 value_size: *mut usize,
1430 ) -> zvec_error_code_t;
1431 pub fn zvec_doc_is_empty(doc: *const zvec_doc_t) -> bool;
1432 pub fn zvec_doc_has_field(doc: *const zvec_doc_t, field_name: *const c_char) -> bool;
1433 pub fn zvec_doc_has_field_value(doc: *const zvec_doc_t, field_name: *const c_char) -> bool;
1434 pub fn zvec_doc_is_field_null(doc: *const zvec_doc_t, field_name: *const c_char) -> bool;
1435 pub fn zvec_doc_get_field_names(
1436 doc: *const zvec_doc_t,
1437 field_names: *mut *mut *mut c_char,
1438 count: *mut usize,
1439 ) -> zvec_error_code_t;
1440 pub fn zvec_free_str_array(array: *mut *mut c_char, count: usize);
1441 pub fn zvec_doc_serialize(
1442 doc: *const zvec_doc_t,
1443 data: *mut *mut u8,
1444 size: *mut usize,
1445 ) -> zvec_error_code_t;
1446 pub fn zvec_doc_deserialize(
1447 data: *const u8,
1448 size: usize,
1449 doc: *mut *mut zvec_doc_t,
1450 ) -> zvec_error_code_t;
1451 pub fn zvec_doc_merge(doc: *mut zvec_doc_t, other: *const zvec_doc_t);
1452 pub fn zvec_doc_memory_usage(doc: *const zvec_doc_t) -> usize;
1453 pub fn zvec_doc_validate(
1454 doc: *const zvec_doc_t,
1455 schema: *const zvec_collection_schema_t,
1456 is_update: bool,
1457 error_msg: *mut *mut c_char,
1458 ) -> zvec_error_code_t;
1459 pub fn zvec_doc_to_detail_string(
1460 doc: *const zvec_doc_t,
1461 detail_str: *mut *mut c_char,
1462 ) -> zvec_error_code_t;
1463
1464 pub fn zvec_data_type_to_string(data_type: zvec_data_type_t) -> *const c_char;
1469 pub fn zvec_index_type_to_string(index_type: zvec_index_type_t) -> *const c_char;
1470 pub fn zvec_metric_type_to_string(metric_type: zvec_metric_type_t) -> *const c_char;
1471}