hora wasm
1.0.0
[ホームページ] [ドキュメント] [事例] [Hora]
WebAssembly方式での、 Hora Approximate Nearest Neighbor Search
の Javascript 入札。
パフォーマンス⚡️
複数のインデックスのサポート
Hierarchical Navigable Small World Graph Index(HNSWIndex)
(詳細)Satellite System Graph (SSGIndex)
(詳細)Product Quantization Inverted File(PQIVFIndex)
(詳細)Random Projection Tree(RPTIndex)
(LSH、WIP)BruteForce (BruteForceIndex)
(SIMD による単純な実装)信頼性
Rust
コンパイラはすべてのコードを保護しますPython lib
などのすべての言語ライブラリのRust
によって管理されるメモリ複数の距離をサポート?
Dot Product Distance
Euclidean Distance
Manhattan Distance
Cosine Similarity
生産的
by aws t2.medium (CPU: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz)
詳細
npm i horajs
import * as horajs from "horajs" ;
const demo = ( ) => {
const dimension = 50 ;
var bf_idx = horajs . BruteForceIndexUsize . new ( dimension ) ;
// var hnsw_idx = horajs.HNSWIndexUsize.new(dimension, 1000000, 32, 64, 20, 500, 16, false);
for ( var i = 0 ; i < 1000 ; i ++ ) {
var feature = [ ] ;
for ( var j = 0 ; j < dimension ; j ++ ) {
feature . push ( Math . random ( ) ) ;
}
bf_idx . add ( feature , i ) ; // add point
}
bf_idx . build ( "euclidean" ) ; // build index
var feature = [ ] ;
for ( var j = 0 ; j < dimension ; j ++ ) {
feature . push ( Math . random ( ) ) ;
}
console . log ( "bf result" , bf_idx . search ( feature , 10 ) ) ; //bf result Uint32Array(10) [704, 113, 358, 835, 408, 379, 117, 414, 808, 826]
}
( async ( ) => {
await horajs . default ( ) ;
await horajs . init_env ( ) ;
demo ( ) ;
} ) ( ) ;
リポジトリ全体は Apache ライセンスの下にあります。