البحث المتجه باستخدام JSON من خلال تطبيق خادم الويب ، مكتوب في Rustlang في BC ، كندا.

رائع للبحث في ناقلات اللغة الطبيعية ، أو ناقلات الصور ، أو أي متجهات أخرى حيث تريد أصغر مسافة بين المتجهات. كما أنه يستوعب الأجسام الجيولوجية وهو أمر رائع للخدمات أو البضائع التي يتم بيعها في المتجر. إنها تُرجع فقط مجموعة من المعرف ومسافة المتجه والكيلومترات من السجل ، لذلك إذا كان هناك المزيد من البيانات من المعرف ، فسوف يحتاج إلى أن يأتي من خدمة منفصلة.
تنسيق الملف المطلوب: صفوف متاحة لبيانات البايت: 32 بايت للمعرف ، ثم بعض عدد 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 to /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 ، خادم الويب.
صنع أندرو ماتي ، ببعض المساعدة من بوب ماتي ، وشخص ثالث سري. في الغالب بتمويل من استراتيجية التوظيف والمهارات في الحكومة الكندية والتنمية الاجتماعية (ESDC) (YESS) من خلال مشروع نظام توزيع الفرص والموارد (Cords).