通過Web服務器應用程序使用JSON搜索,該應用程序用加拿大不列顛哥倫比亞省的Rustlang編寫。

非常適合搜索自然語言向量,圖像向量或您想要向量之間最小距離的任何其他向量。它還適合地理坐標,非常適合在商店出售的服務或商品。它僅返回記錄中的ID,矢量距離和公里數的數組,因此,如果數據不僅僅是ID,它需要來自單獨的服務。
所需的文件格式:字節數據的未驗證行:ID的32個字節,然後對矢量的一些F32數(512就是示例),然後坐標為F32的2個。有關靈感,請參見python文件serde-bin-vec.py 。
開始: cargo run --release ./words_subset.data 8989 512
地點: cargo run --release path_to_data port_to_host vector_size
請求格式是json到 /search或 /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}
請求格式是json到 /get_by_id:
{"item_id": String,
"amount_of_results": int}
響應格式是JSON: {"items: [{"id": str}, {"id": str}, ...]}
demo.py應使用words_subset.data文件在此輸出中的10K記錄上產生結果:
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
可能會有與地理距離相關的評論線。如果您需要一些幫助,請隨時與我聯繫。我的電子郵件是[email protected]
我有一種用於索引的自定義聚類算法。這有點未經測試。
該搜索是每個請求上的單個核心運行,但是如果多個查詢同時執行,則可以通過WebServer Actix使用更多的核心。
在鮑勃·馬特(Bob Matte)和秘密的第三人稱的幫助下,安德魯·馬特(Andrew Matte)做了。主要由加拿大政府的就業和社會發展加拿大(ESDC)的青年就業和技能策略(YESS)資助,這是通過上下文機會和資源分配系統(CORDS)項目資助的。