USearch
快速開源搜尋與分群引擎 × 適用於向量與任意物件 × 支援 C++、C、Python、JavaScript、Rust、Java、Objective-C、Swift、C#、GoLang 及 Wolfram
USearch 是什麼?
快速開源搜尋與分群引擎 × 適用於向量與任意物件 × 支援 C++、C、Python、JavaScript、Rust、Java、Objective-C、Swift、C#、GoLang 及 Wolfram 🔍
USearch 概覽
這是什麼
USearch 是一個快速、開源的向量與任意物件搜尋與聚類引擎。它以單一 C++11 標頭檔函式庫實作,並提供 C++、C、Python、JavaScript、Rust、Java、Objective-C、Swift、C#、Go 與 Wolfram 的繫結。它使用 HNSW(階層式可導航小世界)演算法進行近似最近鄰搜尋。
主要功能
- 比 FAISS 快 10 倍的 HNSW 實作(依 README 所述)。
- 簡單且可擴展的單一 C++11 標頭檔函式庫。
- 獲得 Google 以及 ClickHouse、DuckDB 等資料庫的信任。
- 支援 SIMD 最佳化與使用者自訂度量,並具備 JIT 編譯。
- 硬體無關的 bf16、e5m2 與 i8 半精度與四分之一精度支援。
- 可從磁碟檢視大型索引,無需載入 RAM。
- 支援異質查詢、重新命名/重新標記與即時刪除。
使用情境
- 語意搜尋與合併。
- 針對數十或數百萬個叢集的近即時聚類與子聚類。
- 使用二元 Tanimoto 與 Sorensen 係數的基因體學與化學應用。
- GIS 以及來自多個 AI 模型的複合嵌入向量的自訂度量。
- 混合全文與語意搜尋。
快速開始
安裝 Python 套件:pip install usearchPython 使用範例:pythonimport numpy as npfrom usearch.index import Indexindex = Index(ndim=3)vector = np.array([0.2, 0.6, 0.4])index.add(42, vector)matches = index.search(vector, 10)assert matches[0].key == 42assert matches[0].distance < 0.001C++ 使用範例:cpp#include using namespace unum::usearch;auto index = index_32_t::make(3);index.add(42, {0.2, 0.6, 0.4});auto results = index.search({0.2, 0.6, 0.4}, 10);其他語言請參閱儲存庫 README。
授權與價格
採用 Apache-2.0 授權。開源(未提及價格)。
內容整理自該專案公開的 README 與儲存庫資訊。