עקרון כללי
המשתמש מקליד מחרוזת (למשל: בבא קמא פ: / בבא קמא פ ב), והקוד:
מזהה קודם כל את שם הספר (רמת
).
רק אם יש מילים נוספות – יורדת לרמות הכותרות של אותו ספר (, אחר כך ).
תמיד מחזירה עד 15 תוצאות (אחרי כל הסינונים וההגבלות).
מדורגת כך שתוצאות של ספרים יופיעו לפני תוצאות שמשלבות ספר+כותרת משנה.
1. התאמה לשם ספר (רמת )
1.1. מקור שם הספר
שם הספר נקבע לפי הכותרת ברמת בקובץ (שם הספר הרשמי במערכת).
1.2. מה נחשבת “התאמה לשם ספר”
התאמה יכולה להיות:
התאמה מלאה: כל המילים בשם הספר מופיעות כ־מילים שלמות בקלט (לא כחלק ממילה אחרת).
התאמה חלקית: לפחות אחת ממילות שם הספר מופיעה כ־מילה שלמה בקלט, גם אם זו לא המילה הראשונה (למשל: קמא מתוך בבא קמא).
התאמה חלקית נוספת: אם המשתמש כותב חלק משם הספר אפי' אם זה לא מילה שלמה, אבל דווקא אם זה תחילת השם של הספר ולא מילה שנייה.
1.3. מה מחזירים בשלב הזה
אם נמצאה התאמה (לפי מה שהוגדר לעיל) לשם ספר מסוים:
מציגים ספר זה.
בנוסף, מציגים גם ספרים אחרים שיש להם התאמה חלקית [כפי שהוגדר לעיל] (מילה אחת שלמה מתוך שתי מילים ויותר בשם הספר).
תמיד ספר עם התאמה מלאה יוצג לפני ספר עם התאמה חלקית.
אם יש רק התאמות חלקיות (אין אף ספר עם התאמה מלאה):
מציגים את כל הספרים עם ההתאמה החלקית (כפוף למגבלת 15 תוצאות בסך־הכול).
1.4. התנהגות ביחס לכותרות משנה
ברגע שיש התאמה לשם ספר (מלאה או חלקית) בשלב הזה:
לא מציגים בכלל כותרות משנה (רמות , ) של אותו ספר בשלב של חיפוש שם הספר בלבד.
כלומר: בשלב 1 תוצאות האיתור הן ספרים בלבד.
2. איתור ספר + כותרת משנה (רמת )
הכלל כאן נכנס לפעולה כאשר יש בקלט גם מילים שלא שייכות לשם הספר.
2.1. מתי ניגשים לכותרות רמה 2
אם יש התאמה מלאה לשם ספר ובקלט קיימות מילים נוספות שלא שייכות לשם הספר.
או:
אם יש התאמה חלקית לשם הספר (כלומר: לפחות מילה אחת משם הספר), ואחריה בקלט מופיעה מילה נוספת שלא תואמת לשם הספר:
גם כאן ניגשים לחיפוש בכותרות רמה 2.
2.2. איפה מחפשים ברמת
החיפוש בכותרות משנה רמה 2 נעשה רק בתוך אותו ספר שנבחר לפי התאמת שם הספר.
התאמה לכותרת משנה:
מספיק שתהיה התאמה של מילה אחת שלמה מתוך שם הכותרת, גם אם היא המילה השנייה או השלישית.
שוב – רק התאמת מילה שלמה, לא חלקי מילים.
2.3. תוצאות רמה 2 + דירוג מול ספר
יכולות להיות כמה סוגי תוצאות ביחד:
תוצאה של ספר בלבד (שם ספר מתאים).
תוצאות של ספר + כותרת רמה 2 תואמת.
הסדר בדירוג:
תמיד ספרים קודם [אם יש התאמה מלאה], ורק אחריהם ספר+כותרת משנה.
אם יש כותרת משנה לאותו ספר - לא יוצג הספר ללא הכותרת משנה.
3. ספר + כותרת רמה 2 + מילה נוספת → כותרת רמה 3
כאן מדובר על מצב שבו הקלט מכיל כבר:
התאמה לשם ספר,
התאמה לכותרת משנה רמה 2,
ויש עוד מילה נוספת שלא נמצאה בכותרת רמה 2.
3.1. תנאי כניסה לחיפוש רמה 3
יש התאמה לשם הספר (מלאה/חלקית, לפי כללי סעיפים 1–2).
יש התאמה לאחת מכותרות רמה 2 באותו ספר.
נותרה מילה בקלט שלא נמצאה בשם הספר ולא בכותרת רמה 2.
3.2. חיפוש ברמת
מבצעים חיפוש בכותרות רמה 3 של אותו הספר, תחת אותה כותרת רמה 2 (או לפי המבנה ההיררכי שלך).
התאמה שוב:
מספיק מילה אחת שלמה מתוך כותרת רמה 3.
גם אם היא לא המילה הראשונה.
3.3. תוצאות רמה 3 + דירוג
התוצאות ברמה 3 מצטרפות לשאר התוצאות (ספר בלבד, ספר+רמה 2).
בדירוג הכללי:
ספר בלבד [רק אם הוא תואם יותר לקלט המשתמש].
אחריו ספר+רמה 2 [רק אם הוא תואם יותר לקלט המשתמש].
אחריו ספר+רמה 3
אם יש כותרת ברמה 3 לאותו ספר - לא יוצג הספר עצמו ולא הכותרת משנה שלו.
(כל זה כפוף לגבול 15 התוצאות אחרי סינון).
4. פרמטרים טכניים כלליים
4.1. נרמול טקסט
לפני כל החיפוש יש להריץ על הקלט ועל שמות הספרים/כותרות את הפונקציות הקיימות:
הסרת ניקוד.
הסרת טעמים.
הסרת תווים מיוחדים [לא כולל רווחים].
כך ההשוואה נעשית תמיד על טקסט "יבש".
4.2. חיתוך למילים
יש לפצל את הקלט למילים (tokens) לפי רווחים/סימני פיסוק.
כללי ה"מילה שלמה" מתייחסים לטוקן שלם אחרי הפיצול.
4.3. מגבלת כמות תוצאות
מספר התוצאות שמוחזרות למשתמש לא יעלה על 15, אחרי כל הסינונים (כגון דילוג על כותרות שלא עומדות בכללים).
אם יש יותר מ־15 התאמות, יש לבחור את ה־15 המדורגות ביותר לפי כללי הדירוג (ספרים קודם, התאמה מלאה לפני חלקית וכו').