On this page
מערך שיעור: שאילתות match, term, range, bool
משך: 2 שעות אקדמיות (90 דקות).
מטרת השיעור: הסטודנטים ישלטו בשאילתות הבסיסיות וישלבו אותן עם bool.
בסוף השיעור הסטודנטים צריכים: לכתוב match/term/range נפרדים, לשלב אותם עם bool, ולהסביר את ההבדל בין must ל-filter.
דגש קריטי: ההבדל must/filter (השפעה על דירוג מול לא) הוא הנקודה העדינה ביותר בשיעור — תנו לה זמן נפרד.
מהלך השיעור
| חלק בשיעור | משך | הערות ודגשים |
|---|---|---|
| פתיחה וחיבור | 5 דקות | חזרה קצרה על match/term מהשיעורים הקודמים |
| range | 15 דקות | טווחים מספריים ותאריכים |
| הרעיון: bool | 20 דקות | must/should/must_not — קישרו ל-&/ |
| must מול filter | 20 דקות | הבדל בדירוג וביצועים |
| הדגמה חיה: שאילתה משולבת מלאה | 20 דקות | כל הרכיבים יחד |
| תרגול מודרך | 10 דקות | תרגיל 1+2 |
דגשים להעברת השיעור
- קישרו bool ל-&/| מיחידת Pandas ול-Where מורכב ב-LINQ — זה עוזר לסטודנטים לזהות שהם כבר מכירים את הלוגיקה, רק לומדים תחביר שלישי.
- must מול filter דורש הסבר מפורש עם דוגמה — “שם המוצר תואם” משפיע על כמה התוצאה רלוונטית (must); “מחיר עד 500” הוא רק כן/לא (filter).
- הדגמה חיה של שאילתה משולבת מלאה (עם must+filter+must_not יחד) חשובה כי זה מה שסטודנטים יצטרכו לכתוב בפרויקט המסכם.
מושגים
match — חיפוש חכם על text.
term — התאמה מדויקת על keyword.
range — סינון לפי טווח.
bool — שילוב תנאים: must/should/must_not/filter.
תרגיל חשיבה
שאלת פתיחה: “אתם מחפשים מוצרים עם ‘נעליים’ בשם, אבל רק בטווח מחיר מסוים. למה תשימו את חיפוש השם ב-must ואת טווח המחיר ב-filter, ולא שניהם באותו מקום?”
מהלך: הובילו לתובנה: “נעליים” בשם הוא תנאי שיכול להיות יותר או פחות רלוונטי (מוצר עם “נעליים” פעמיים בשם רלוונטי יותר מאחד עם פעם אחת) — שייך ל-must, משפיע על הדירוג. טווח מחיר הוא בינארי לגמרי — או שהמוצר בטווח או שלא, אין “יותר או פחות” — שייך ל-filter, וגם מהיר יותר כי Elasticsearch יכול לשמור אותו ב-cache.
מה המרצה מראה בסוף: הריצו את אותה שאילתה פעמיים — פעם עם טווח המחיר ב-must ופעם ב-filter — אם אפשר, השוו את ה-Relevance Score (_score) של התוצאות בין השתי הגרסאות, כדי להראות שהמיקום (must/filter) משפיע בפועל על הניקוד, לא רק על התוצאה הבינארית.