Skip to content

C API: multi-query, reranker, and sparse vector functions not exported in shared library #443

Description

@thebitbrine

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)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

Status
In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions