tantivy-search
tantivy-search copied to clipboard
Tantivy-search is a C++ wrapper for Tantivy, a full-text search engine written in Rust. It is designed to integrate with MyScaleDB and ClickHouse.
Tantivy Search
This library is designed to integrate tantivy into ClickHouse and MyScaleDB.
Development
All FFI (Foreign Function Interface) functions are exposed in lib.rs. Developers need to regenerate the header file after making any changes to the relevant code:
cbindgen . -o include/tantivy_search_cbindgen.h --config cbindgen.toml
cxxbridge src/lib.rs --header > include/tantivy_search_cxx.h
If developers do not add, delete, or modify the names of FFI functions, there is no need to execute the above command.
Work in progress
- [x] Added unit tests in C++ to test Rust FFI functions.
- [x] Add additional unit tests within Rust FFI functions.
- [ ] Refactor the
tantivy_searchcode using object-oriented principles.
How to build?
You can use cargo to build this library, use this command:
cargo build --release
If you need to test FFI function in C++, run:
mkdir build
cd build && cmake ..
make -j
You can use vscode or other compilers to make the build process more elegant.
How to test?
Test in Rust:
cargo test
Here is an example to run unit test in C++:
cd build/tests/unit_test
./unit_test