Zvec؛ پایگاه دادهٔ برداریِ درونفرایندی
خلاصهٔ کاملتر
Zvec یه پایگاه دادهٔ برداریِ متنباز و سبکه که برخلافِ خیلی از رقبا سرورِ جدا نمیخواد؛ بهشکلِ یه کتابخانه مستقیم داخلِ فرایندِ اپ اجرا میشه. به گفتهٔ پروژه، این پایگاه داده داخلِ علیبابا در مقیاسِ تولید تست شده و جستوجوی شباهتِ کمتأخیر و مقیاسپذیر رو با کمترین راهاندازی ارائه میده. چون درونفرایندیه، هرجا کدت اجرا شه — از نوتبوک تا سرور و حتی دستگاههای لبه — همونجا کار میکنه.
مهمترین خبر، نسخهٔ ۰.۵.۰ (۱۲ ژوئن ۲۰۲۶) با چند قابلیتِ کلیدیه. سرچِ تماممتن (FTS) حالا بومیه: میتونی به هر فیلدِ رشتهای یه ایندکسِ FTS بچسبونی و با عبارتهای طبیعی یا ساختاریافته کوئری بزنی، بدونِ موتورِ جستوجوی بیرونی. بازیابیِ ترکیبی هم اجازه میده تو یه MultiQuery، بردارهای چگال و تُنُک، فیلترهای اسکالر و متن رو با هم ترکیب کنی.
یه ایندکسِ جدید به اسمِ DiskANN اضافه شده که بخشِ عمدهٔ ایندکس رو روی دیسک نگه میداره و برای دیتاستهای بزرگ مصرفِ حافظه رو بهشدت پایین میاره. در کنارش SDKهای رسمیِ Go و Rust، ابزارِ بصریِ Zvec Studio برای مرورِ داده و دیباگِ کوئری، و پشتیبانی از معماریِ RISC-V هم معرفی شدن. پروژه از قبل هم SDKهای Python، Node.js و Dart/Flutter داشت.
از نظرِ پایداری، Zvec با لاگگیریِ پیشنویس (WAL) تضمین میکنه که داده حتی موقعِ کرشِ فرایند یا قطعِ برق از دست نره. چند فرایند میتونن همزمان از یه کالکشن بخونن، ولی نوشتن انحصاری و تکفرایندیه. مجموعهٔ این ویژگیها Zvec رو برای بارهای تولیدیِ سنگین که هم سرعت و هم سادگیِ استقرار میخوان مناسب میکنه.
یه نمونهٔ کوتاه نشون میده کارکردنِ باهاش چقدر سادهست — یه کالکشن میسازی، چند سند وارد میکنی و بعد بر اساسِ شباهتِ برداری کوئری میزنی:
collection = zvec.create_and_open(path="./zvec_example", schema=schema)
collection.insert([
zvec.Doc(id="doc_1", vectors={"embedding": [0.1, 0.2, 0.3, 0.4]}),
])
results = collection.query(
zvec.VectorQuery("embedding", vector=[0.4, 0.3, 0.3, 0.1]),
topk=10
)خروجی یه لیستِ مرتبشده بر اساسِ ارتباطه.
نکات کلیدی:
- Zvec یه پایگاه دادهٔ برداریِ درونفرایندیه؛ بدونِ سرور، مستقیم داخلِ اپ.
- نسخهٔ ۰.۵.۰ سرچِ تماممتن و بازیابیِ ترکیبیِ بردار و متن و فیلتر رو اضافه کرده.
- ایندکسِ DiskANN برای دیتاستهای بزرگ مصرفِ رم رو کم میکنه.
- SDKهای تازهٔ Go و Rust، ابزارِ Zvec Studio و پشتیبانی از RISC-V اضافه شده.
- WAL پایداریِ داده رو تضمین میکنه و چند فرایند همزمان میتونن بخونن.




