The c_api.h header declares functions for multi-query, reranking, and sparse vector document setters, but they are not exported in the zvec_c_api shared library built from v0.4.0.
I'm working on .NET bindings (https://github.com/TheBitBrine/zvec-dotnet) and hit this while trying to implement hybrid search.
Functions declared in c_api.h but missing from the .dll/.so exports
Multi-query:
zvec_multi_query_create, zvec_multi_query_destroy
zvec_multi_query_add_sub_query, zvec_multi_query_set_topk
zvec_multi_query_set_filter, zvec_multi_query_set_reranker
zvec_sub_query_create, zvec_sub_query_destroy
zvec_sub_query_set_field_name, zvec_sub_query_set_query_vector
zvec_collection_multi_query
Reranker:
zvec_reranker_create_rrf, zvec_reranker_create_weighted
zvec_reranker_destroy
Sparse vector doc setter:
- No
zvec_doc_set_sparse_vector or equivalent for populating sparse vector fields on documents via the C API
How I checked
dumpbin /exports zvec_c_api.dll | findstr "multi_query"
dumpbin /exports zvec_c_api.dll | findstr "reranker"
dumpbin /exports zvec_c_api.dll | findstr "sub_query"
All return nothing. The DLL was extracted from the v0.4.0 Python wheel (zvec-0.4.0-cp314-cp314-win_amd64.whl).
Group-by query functions (zvec_group_by_vector_query_*) are exported and work fine. The regular vector query, collection CRUD, schema, and index functions all work as expected.
Versions
- zvec v0.4.0
- Windows x64 (also confirmed same missing exports on linux-x64 and osx-arm64 from PyPI wheels)
The c_api.h header declares functions for multi-query, reranking, and sparse vector document setters, but they are not exported in the zvec_c_api shared library built from v0.4.0.
I'm working on .NET bindings (https://github.com/TheBitBrine/zvec-dotnet) and hit this while trying to implement hybrid search.
Functions declared in c_api.h but missing from the .dll/.so exports
Multi-query:
zvec_multi_query_create,zvec_multi_query_destroyzvec_multi_query_add_sub_query,zvec_multi_query_set_topkzvec_multi_query_set_filter,zvec_multi_query_set_rerankerzvec_sub_query_create,zvec_sub_query_destroyzvec_sub_query_set_field_name,zvec_sub_query_set_query_vectorzvec_collection_multi_queryReranker:
zvec_reranker_create_rrf,zvec_reranker_create_weightedzvec_reranker_destroySparse vector doc setter:
zvec_doc_set_sparse_vectoror equivalent for populating sparse vector fields on documents via the C APIHow I checked
All return nothing. The DLL was extracted from the v0.4.0 Python wheel (
zvec-0.4.0-cp314-cp314-win_amd64.whl).Group-by query functions (
zvec_group_by_vector_query_*) are exported and work fine. The regular vector query, collection CRUD, schema, and index functions all work as expected.Versions