### Install and Preview Changelog with git-cliff Source: https://github.com/fieldnote-echo/ordvec/blob/main/CONTRIBUTING.md Install git-cliff globally and preview the changelog for the next release based on unreleased commits. ```sh cargo install git-cliff # once git cliff --unreleased --tag vX.Y.Z # preview the next section ``` -------------------------------- ### Install ordvec-manifest Source: https://github.com/fieldnote-echo/ordvec/blob/main/ordvec-manifest-python/README.md Install the ordvec-manifest package from PyPI using pip. ```bash python -m pip install ordvec-manifest ``` -------------------------------- ### Minimal ordvec C API Example Source: https://github.com/fieldnote-echo/ordvec/blob/main/docs/c-api.md A complete C program demonstrating loading an index, retrieving its information, performing a search, and processing the results. Ensure the index file 'index.tvrq' exists and the necessary headers are included. ```c #include #include #include #include #include "ordvec.h" int main(void) { ordvec_index_t *index = NULL; ordvec_status_t st = ordvec_index_load("index.tvrq", 0, &index); if (st != ORDVEC_STATUS_OK) { fprintf(stderr, "load failed: %s\n", ordvec_last_error()); return 1; } ordvec_index_info_t info; ordvec_index_info_init(&info); st = ordvec_index_info(index, &info); if (st != ORDVEC_STATUS_OK) { fprintf(stderr, "info failed: %s\n", ordvec_last_error()); ordvec_index_free(index); return 1; } if (info.dim > SIZE_MAX / sizeof(float)) { fprintf(stderr, "index dimension is too large\n"); ordvec_index_free(index); return 1; } float *query = calloc((size_t)info.dim, sizeof *query); if (query == NULL) { fprintf(stderr, "query allocation failed\n"); ordvec_index_free(index); return 1; } ordvec_search_params_t params; ordvec_search_params_init(¶ms); params.query = query; params.dim = info.dim; params.k = 10; ordvec_hit_t hits[10]; uint64_t returned = 0; ordvec_search_stats_t stats; ordvec_search_stats_init(&stats); st = ordvec_index_search(index, ¶ms, hits, 10, &returned, &stats); if (st != ORDVEC_STATUS_OK) { fprintf(stderr, "search failed: %s\n", ordvec_last_error()); free(query); ordvec_index_free(index); return 1; } for (uint64_t i = 0; i < returned; i++) { printf("row=%%" PRIu64 " id=%%" PRIu64 " score=%%f\n", hits[i].row_id, hits[i].id, hits[i].score); } free(query); ordvec_index_free(index); return 0; } ``` -------------------------------- ### Benchmarking Rank Modes with Custom Embeddings Source: https://github.com/fieldnote-echo/ordvec/blob/main/docs/RANK_MODES.md Run the bench_rank example with your own .npy files for embeddings and queries to evaluate performance. Ensure your .npy files are 2-D little-endian float32 (