On this page
מערך שיעור: מבוא ל-Elasticsearch
משך: 2 שעות אקדמיות (90 דקות).
מטרת השיעור: הסטודנטים יבינו למה חיפוש טקסט חכם דורש מנוע ייעודי, ויכירו Document/Index/Mapping.
בסוף השיעור הסטודנטים צריכים: להסביר את מגבלות LIKE ב-SQL לחיפוש טקסט, ליצור Index עם Mapping בסיסי, ולהבדיל Elasticsearch מ-MongoDB במטרה (לא רק במבנה נתונים).
דגש קריטי: הבהירו מפורשות ש-Elasticsearch משלים DB קיים, לא מחליף אותו — מניעת בלבול מושגי מרכזי.
מהלך השיעור
| חלק בשיעור | משך | הערות ודגשים |
|---|---|---|
| פתיחה וחיבור | 5 דקות | הראו LIKE ‘%נעל%’ שמפספס “נעליים” |
| הבעיה: LIKE מוגבל | 15 דקות | התאמת תווים מדויקת, לא משמעות |
| הרעיון: Document/Index | 20 דקות | דמיון ל-MongoDB, מטרה שונה |
| הרעיון: Mapping | 25 דקות | text מול keyword (רמז לשיעור הבא) |
| הדגמה חיה: יצירת Index | 20 דקות | PUT mapping, הוספת documents |
| תרגול מודרך | 5 דקות | תרגיל 1 |
דגשים להעברת השיעור
- ההשוואה ל-MongoDB (Document/Index דומים במבנה) עוזרת, אך ודאו שסטודנטים לא מסיקים “זה עוד NoSQL DB” — הדגישו את ההבדל התכליתי (חיפוש מול אחסון) שוב ושוב.
- אל תעמיקו עדיין ב-
textמולkeyword— רק ציינו שהם קיימים ושההבדל יוסבר בשיעור הבא, כדי לא להעמיס את השיעור הראשון. - הדגמה חיה של יצירת Index והוספת Documents (לא רק JSON על שקופית) חשובה — סטודנטים צריכים לראות בעיניים בקשות ל-Elasticsearch בפועל (Kibana Dev Tools או curl).
מושגים
Information Retrieval — מציאת מידע רלוונטי, כולל דירוג. Document — יחידת נתונים דמוית-JSON. Index — אוסף Documents, מקביל ל-Table/Collection. Mapping — הגדרת סכמה, כולל איך כל שדה מאונדקס.
תרגיל חשיבה
שאלת פתיחה: “אתם מחפשים ‘מחשב נייד’ בחנות אונליין. אילו תוצאות הייתם רוצים לראות שגם: כתיב שונה מעט (‘מחשב נייד’ מול ‘לפטופ’), או סדר מילים הפוך? האם WHERE LIKE ב-SQL יכול לתת לכם את זה?”
מהלך: תנו לסטודנטים לחשוב על התרחישים — LIKE '%מחשב נייד%' לא ימצא “לפטופ” (מילה שונה לגמרי) ולא ימצא “נייד מחשב” (סדר הפוך). הובילו לתובנה: חיפוש “חכם” דורש הבנת מילים ומשמעות, לא רק התאמת תווים רציפה — זו בדיוק הבעיה ש-Elasticsearch נבנה לפתור.
מה המרצה מראה בסוף: הריצו חיפוש LIKE ב-SQL מול חיפוש Elasticsearch (match query, גם אם רק רמז לשיעור הבא) על אותם נתונים — הראו ש-Elasticsearch מוצא התאמות ש-LIKE מפספס, ומדרג לפי רלוונטיות במקום להחזיר רשימה לא-מסודרת.