מה זה Weaviate?
Weaviate הוא בסיס נתונים וקטורי (Vector Database) בקוד פתוח, שתוכנן לאחסן, לאנדקס ולחפש מידע
לא רק לפי ערכים מספריים או מחרוזות, אלא לפי וקטורים שהם ייצוגים מתמטים של תוכן מורכב כמו טקסטים,
תמונות, קוד או קול.
במילים פשוטות, Weaviate מאפשר חיפוש סמנטי (“מה המשמעות של זה?”) במקום חיפוש מילולי
(“מה המילה המדויקת?”).
הוא מיועד לארגונים שמטפלים בכמויות גדולות של מידע לא מובנה, במיוחד בעולמות של בינה מלאכותית,
NLP וחיפוש חכם.
למה צריך בסיס נתונים וקטורי?
ביישומים של למידת מכונה ו־AI, אנו נתקלים בצורך לחפש “תוכן דומה”. למשל:
למצוא מסמכים דומים למסמך קיים.
להציע מוצרים דומים ללקוח.
להבין מהי כוונת שאלה ולהחזיר תשובות דומות מהמאגר.
הדרך לעשות זאת היא להמיר את המידע לוקטורים (בד”כ באמצעות מודלים כמו BERT או CLIP), ואז לחשב קרבה
מתמטית (למשל, Cosine Similarity או L2).
כאן בדיוק נכנס Weaviate שנבנה מאפס כדי לנהל את הוקטורים הללו בצורה יעילה, מהירה וסקלאבילית.
תכונות עיקריות של Weaviate
חיפוש סמנטי
ניתן להזין שאלה כמו “מי המציא את תורת היחסות?” ולקבל תוצאה מתוך מאגר של טקסטים או מסמכים,
גם אם המילים המדויקות לא מופיעות.
אינטגרציה עם מודלים חיצוניים
Weaviate תומך בהמרת טקסטים לוקטורים בעזרת מנועים חיצוניים כמו:
OpenAI
Cohere
HuggingFace
Google Palm
או מודלים עצמאיים (self-hosted).
Schema & Objects
Weaviate משתמש במבנה סכמטי של אובייקטים עם שדות (בדומה ל־GraphQL) אבל מוסיף עליהם
את היכולת לחפש לפי תוכן סמנטי.
Vector Indexing
אלגוריתם HNSW (Hierarchical Navigable Small World) לניהול אינדקס וקטורי מהיר במיוחד.
תמיכה במודלים של ANN (Approximate Nearest Neighbors).
סקלאביליות וניידות
אפשר להריץ את Weaviate בענן, על שרתים פרטיים, בקוברנטיס, או ב־Docker,
כולל Kubernetes Native Scaling.
תוספים (Modules)
תוספים לחיפוש דמיון בתמונות (CLIP), צ’אט בוטים, מולטי-מודל ועוד.
חיבור ל־LangChain ו־LLMs לבניית אפליקציות חכמות.
מתי כדאי להשתמש ב-Weaviate?
Weaviate מתאים במיוחד כשיש צורך באחזור סמנטי מהיר ויעיל ממידע לא מובנה, למשל:
ניהול מסמכים בגוף ממשלתי או משפטי.
מנועי המלצות מבוססי הבנה של תוכן.
אפליקציות צ’אט עם הקשר.
ניתוח תוכן משתמשים ברשתות חברתיות.
ניהול ידע פנים-ארגוני.
תהליך עבודה בסיסי עם Weaviate
בניית סכימה (Schema):
מגדירים את סוגי האובייקטים והשדות. לדוגמה: Class בשם Article עם שדות title, body, tags.
המרת תוכן לוקטורים (Vectorization):
Weaviate דואג לכך אוטומטית, או מאפשר שימוש במודל שאתם מביאים.
הזנת הנתונים:
יוצרים אובייקטים באמצעות API או ממשק.
ביצוע שאילתות סמנטיות:
באמצעות GraphQL או REST אפשר לשאול שאלות חכמות ולקבל תוצאות לפי דמיון.
יתרונות Weaviate מול מתחרים
| תכונה | Weaviate | Pinecone | FAISS | Milvus |
| קוד פתוח | ✅ | ❌ | ✅ | ✅ |
| מנוע חיפוש סמנטי מובנה | ✅ | ❌ | ❌ | ❌ |
| ניהול סכמות | ✅ | ❌ | ❌ | ✅ |
| תמיכה ב־GraphQL | ✅ | ❌ | ❌ | ❌ |
| ניהול Multi-Tenant | ✅ | ✅ | ❌ | ✅ |
| הפעלת מודלים משולבים | ✅ | ❌ | ❌ | ❌ |
דוגמה לשאילתת GraphQL ב־Weaviate
graphql
{
Get {
Article(
nearText: {
concepts: [“quantum physics”]
}
) {
title
url
}
}
}
השאילתה הזו תחזיר מאמרים שהמנוע מעריך כקשורים לפיזיקה קוונטית, גם אם לא כתוב “quantum”
או “physics” באף מילה.
שאלות ותשובות בנושא Weaviate
האם אפשר להשתמש ב־Weaviate בלי מודל חיצוני?
כן, אפשר להשתמש במודלים מקומיים (self-hosted), או לבצע את ההמרה לוקטורים בעצמכם
ולהזין אותם ישירות ל־Weaviate.
כמה מהיר הוא Weaviate?
בזכות HNSW, ביצועי החיפוש הם תת-שניות גם עבור עשרות מיליוני אובייקטים,
בתנאי שאינדקס נבנה היטב.
האם אפשר להריץ אותו על מחשב בודד?
כן, Weaviate נוח לפריסה מקומית עם Docker. אך כדי לתמוך ב־production scale
כדאי להריץ בקוברנטיס.
האם הוא תומך ב־Hybrid Search (גם מילות מפתח וגם וקטורים)?
בהחלט. אפשר לשלב תנאים של חיפוש רגיל עם חיפוש סמנטי.

