hora wasm
1.0.0
[Página de inicio] [Documento] [Ejemplos] [Hora]
Oferta en Javascript para la Hora Approximate Nearest Neighbor Search
, en forma WebAssembly .
Artista ⚡️
Soporte de múltiples índices
Hierarchical Navigable Small World Graph Index(HNSWIndex)
(detalle)Satellite System Graph (SSGIndex)
(detalle)Product Quantization Inverted File(PQIVFIndex)
(detalle)Random Projection Tree(RPTIndex)
(LSH, WIP)BruteForce (BruteForceIndex)
(implementación ingenua con SIMD)Fiabilidad
Rust
protege todo el códigoRust
para todas las bibliotecas de idiomas, como Python lib
¿Soporte para múltiples distancias ?
Dot Product Distance
Euclidean Distance
Manhattan Distance
Cosine Similarity
Productivo
por aws t2.medium (CPU: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz)
más información
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 ( ) ;
} ) ( ) ;
Todo el repositorio está bajo licencia Apache.