Pencarian vektor menggunakan JSON melalui aplikasi server web, ditulis di Rustlang di BC, Kanada.

Bagus untuk mencari vektor bahasa alami, vektor gambar, atau vektor lain di mana Anda menginginkan jarak terkecil di antara vektor. Ini juga mengakomodasi geo-koordinat yang bagus untuk layanan atau barang yang dijual di toko. Ini hanya mengembalikan array ID, jarak vektor dan kilometer dari catatan, jadi jika ada lebih banyak data daripada hanya ID, itu harus berasal dari layanan terpisah.
Format File yang Diperlukan: Baris Data Byte yang Tidak Diklik: 32 byte untuk ID, lalu sejumlah F32 untuk vektor (512 hanyalah contoh), lalu 2 F32 untuk koordinat. Lihat File Python serde-bin-vec.py untuk inspirasi.
Untuk memulai: cargo run --release ./words_subset.data 8989 512
Di mana: cargo run --release path_to_data port_to_host vector_size
Format permintaan adalah json ke /search atau /search_ann:
{"sort_by_vec": 1 or 0,
"geoc": [float],
"vector": [float], (matching the database size)
"geo_threshold": float,
"vec_threshold": float,
"limit_results": int}
Format permintaan adalah json to /get_by_id:
{"item_id": String,
"amount_of_results": int}
Format respons adalah json: {"items: [{"id": str}, {"id": str}, ...]}
Demo.py harus menghasilkan hasil pada catatan 10K dalam output ini menggunakan file words_subset.data:
Running exhaustive seach 100 times
times for exhaustive search
max time taken 0:00:00.011164
min time taken 0:00:00.006289
median time taken 0:00:00.006847
Running approximate seach 1000 times
times for approximate search
max time taken 0:00:00.001434
min time taken 0:00:00.000714
median time taken 0:00:00.000945
Mungkin ada baris yang berkomentar terkait dengan geo-jarak dalam kilometer. Silakan menjangkau saya jika Anda membutuhkan bantuan agar berhasil. Email saya adalah [email protected]
Saya memiliki algoritma pengelompokan khusus untuk pengindeksan. Itu agak tidak teruji.
Pencarian berjalan pada satu inti per permintaan, tetapi jika beberapa pertanyaan dieksekusi secara bersamaan, ia dapat menggunakan lebih banyak core berkat Actix, server web.
Membuat Andrew Matte, dengan bantuan dari Bob Matte, dan orang ketiga rahasia. Sebagian besar didanai oleh ketenagakerjaan pemerintah Kanada dan pengembangan sosial Kanada (ESDC's) Pekerjaan dan Keterampilan Strategi Keterampilan (YESS) melalui Proyek Peluang Kontekstual dan Sumber Daya Sumber Daya (CORS).