Select API: C++ API | C Stable ABI

C++ API Reference

SearchEngine Class

// Open
static StatusOr<unique_ptr<SearchEngine>> Open(const SearchEngineConfig& cfg);

// Upsert
Status Upsert(string_view key, VectorView vec, Metadata meta = {}, 
              optional<milliseconds> ttl = nullopt, optional<string> text = nullopt);

// Search
StatusOr<vector<ResultItem>> Search(VectorView q, QueryOptions opt);

// Hybrid Search
StatusOr<vector<ResultItem>> SearchHybrid(const HybridQuery& query);

Key Structures

SearchEngineConfig

struct SearchEngineConfig {
    int dim = 0;
    IndexType index_type = IndexType::Flat; // Flat, Hnsw, IvfFlat, IvfSq8
    Similarity similarity = Similarity::Dot;
    int num_shards = 1;
    bool enable_avx2 = true;
    // ... HNSW & IVF params
};

Thread Safety


C Stable ABI

Safe wrapper for binding Rust, Go, Python, Node.

Ownership Rules

Status Model

Build & Link

find_package(pomai_search REQUIRED)
target_link_libraries(my_app PRIVATE pomai_search_c)