การค้นหาเวกเตอร์โดยใช้ JSON ผ่านแอปพลิเคชันเว็บเซิร์ฟเวอร์ที่เขียนใน Rustlang ใน BC, Canada

เหมาะสำหรับการค้นหาเวกเตอร์ภาษาธรรมชาติเวกเตอร์ภาพหรือเวกเตอร์อื่น ๆ ที่คุณต้องการระยะห่างระหว่างเวกเตอร์ที่เล็กที่สุด นอกจากนี้ยังรองรับการพิกัดทางภูมิศาสตร์ซึ่งเหมาะสำหรับบริการหรือสินค้าที่ขายในร้าน มันส่งคืนอาร์เรย์ของ ID ระยะทางเวกเตอร์และกิโลเมตรจากบันทึกเท่านั้นดังนั้นหากมีข้อมูลมากกว่า ID เท่านั้นที่จะต้องมาจากบริการแยกต่างหาก
รูปแบบไฟล์ที่ต้องการ: แถวที่ไม่ได้รับข้อมูลไบต์: 32 ไบต์สำหรับ ID จากนั้นจำนวน F32 จำนวนหนึ่งสำหรับเวกเตอร์ (512 เป็นเพียงตัวอย่าง) จากนั้น 2 จาก F32 สำหรับพิกัด ดูไฟล์ 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 to /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 ควรให้ผลลัพธ์ในบันทึก 10k ในเอาต์พุตนี้โดยใช้ไฟล์ 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
อาจมีความคิดเห็นที่เกี่ยวข้องกับระยะทางภูมิศาสตร์เป็นกิโลเมตร โปรดอย่าลังเลที่จะติดต่อฉันหากคุณต้องการความช่วยเหลือในการทำงาน อีเมลของฉันคือ [email protected]
ฉันมีอัลกอริทึมการจัดกลุ่มแบบกำหนดเองสำหรับการจัดทำดัชนี มันยังไม่ผ่านการทดสอบ
การค้นหาทำงานบนแกนเดียวต่อคำขอ แต่หากมีการค้นหาหลายครั้งในเวลาเดียวกันก็สามารถใช้คอร์มากขึ้นได้ด้วย Actix, Webserver
ทำ Andrew Matte ด้วยความช่วยเหลือจาก Bob Matte และบุคคลที่สามลับ ส่วนใหญ่ได้รับทุนจากการจ้างงานและการพัฒนาสังคมของรัฐบาลแคนาดาและการพัฒนาสังคมของแคนาดา (ESDC's) การจ้างงานเยาวชนและกลยุทธ์ทักษะ (YESS) ผ่านโอกาสเชิงบริบทและระบบการจัดจำหน่ายทรัพยากร (CORDS)