Repository navigation
Semantic Search
החיפוש החכם הוא מסלול חיפוש לפי עניין, עם אפשרות לשלב התאמות מילוליות. הוא משתמש במודל מקומי ובנתוני וקטורים שהוכנו מראש לספרייה הרשמית. הוא אינו חלק ממצב SearchMode.fuzzy, ואינו מערכת שמייצרת תשובה במקום תוצאות.
למדריך שימוש, דרישות מערכת והסכמה ראה חיפוש חכם. דף זה מתאר את קוד הפיתוח.
| רכיב | אחריות |
|---|---|
SemanticSearchRepository |
זמינות, הכנת הנתונים, התקנה, עדכון וקריאות למנוע |
SemanticSearchBloc |
מצב הנתונים והפעולות שהממשק יכול להציע |
SemanticResultsBloc |
חיפוש בכרטיסייה, עימוד, ביטול ותוצאות |
SemanticResultsSource |
ממשק אחיד להבאת עמודי תוצאות והדגשות |
EngineSemanticResultsSource |
המימוש המשתמש במנוע וב־session נפרד לכרטיסייה |
OnnxSemanticEngineAdapter |
חיבור רכיב ONNX למנוע הסמנטי |
SemanticReleaseLocator |
איתור גרסאות מודל ווקטורים והתאמתן לספרייה |
SemanticStagedImport |
זיהוי והתקנה של נתונים שהועברו מראש למחשב |
SearchFeedbackService |
הסכמה, תור מקומי ושליחת נתוני שימוש |
הממשק מבדיל בין פלטפורמה לא נתמכת, מנוע שלא נכלל בבנייה, הסכמה חסרה, נתונים שטרם הורדו, נתונים שטרם פורסמו לגרסת הספרייה, הורדה, התקנה, מוכנות וכשל.
מצב „מוכן” לבדו אינו עוקף את דרישת ההסכמה. פתיחת מסך התוצאות צריכה להשתמש בשער הזמינות המשותף, ולא להניח שהימצאות קובץ מודל מספיקה.
בדיקת הפלטפורמה תומכת ב־Windows/Linux מסוג x64 או ARM64 וב־macOS על Apple Silicon מגרסה 14. Android, iOS ו־Mac מסוג Intel אינם נתמכים במסלול זה. בנוסף נבדקת תמיכת המנוע שבבנייה.
בבניית דיבוג בלבד קיים DebugLexicalPreviewSource לתצוגת ממשק כשהמנוע או הנתונים חסרים. הוא מבוסס על חיפוש מילולי עם נתוני תצוגה מדומים. אין להציגו כהוכחה שחיפוש סמנטי אמיתי פעיל, ואין לתעד אותו כיכולת משתמש.
הנתונים צריכים להתאים לזהות המודל ולגרסת הספרייה. SemanticModelIdentity, תיאורי הגרסאות והנתיבים מפרידים בין קובצי מודל, קובצי וקטורים, מצב התקנה וקבצים זמניים.
המאתר בודק מטא־נתונים מפורסמים, גרסת יעד, זהות מודל וגיבובי SHA-256. קובץ שהורד אינו מותקן רק משום ששמו נראה מתאים. בדיקת שלמות והחלפה מבוקרת נדרשות גם בייבוא נתונים שהועברו למחשב מראש.
היעדר פרסום לגרסת ספרייה הוא מצב צפוי נפרד מכשל רשת. בנייה מחדש של אינדקס המילים אינה מייצרת את הווקטורים החסרים.
הורדה ועדכון מכבדים מצב לא מקוון והשהיית המשתמש. התקנה ממקור שכבר הועבר למחשב יכולה לפעול בלי הורדה. מחיקת הנתונים מסירה את נתוני המסלול ומפסיקה את עדכונם; היא אינה שקולה למחיקת הספרייה או האינדקס המילולי.
SemanticQueryOptions כולל שאילתה, facets, בחירה בשילוב מילולי ואיחוד טקסטים זהים. מקור התוצאות בונה SemanticSearchRequest ומבקש hybrid או semanticOnly לפי הבחירה.
ההיקף מוגבל לספרים רשמיים שיש עבורם נתונים. מפתחות של ספרים אישיים ומסדים מצורפים אינם מוכנסים למסלול הווקטורים. יש לשמר את מסנני הממדים הנתמכים ולהציג שגיאה מועילה כשבקשת היקף אינה נתמכת.
לכל מקור תוצאות יש session משלו, כך שחיפוש בכרטיסייה אחת אינו מבטל חיפוש בכרטיסייה אחרת. ביטול או החלפת שאילתה מחייבים שלא להציג עמוד שהגיע מהחיפוש הקודם.
תוצאה מכילה זהות מקור, קטע, מראה מקום ומידע על דרך ההתאמה. הממשק מבחין בין התאמה מילולית, התאמה לפי עניין והתאמה משולבת. זהות הספר צריכה להישמר עד הפתיחה בקורא.
התגובה כוללת גם מידע כגון:
- האם יש עוד תוצאות.
- האם הספירות מדויקות או מוגבלות.
- האם חלון המועמדים או הרשימה נחתכו.
- איזה מצב התבקש ואיזה מצב בוצע בפועל.
- האם התבצעה נסיגה למסלול חלופי ומה סיבתה.
אין להציג נסיגה למילולי כאילו הופק דירוג סמנטי רגיל. SemanticFallbackLog ושדות התגובה מאפשרים לדווח ולבדוק זאת. כשל בטעינת עמוד המשך שונה מכשל בחיפוש הראשון ואינו צריך למחוק תוצאות שכבר הוצגו.
הדגשות קטעים הן פעולה נפרדת היכולה להיקרא עם ידית ביטול. זמני טעינה וספירות צריכים לשקף את הפעולה הרלוונטית, בלי להסיק שהדגשה חסרה פירושה שהספר לא נמצא.
שם המצב ונוסח ההסכמה מרוכזים ב־semantic_search_strings.dart. ההסכמה כוללת שאילתות, תוצאות ודירוגן, פתיחת קטעים, משוב, זמן עיון ומידע על גרסת התוכנה והמערכת.
SearchFeedbackService מנהל תור מקומי, ניסיון שליחה, השהיה לאחר כשל ובדיקה שההסכמה עדיין תקפה לפני שליחה. מצב לא מקוון מונע שליחה, אך אינו מבטל את ההסכמה או מבטיח שלא ייאספו אירועים לתור.
ביטול הסכמה חוסם את המצב ומוחק אירועים שלא נשלחו. הסוואת כתובות דוא״ל ונתיבי קבצים בטקסט היא הגנה חלקית, ולא הבטחה לאנונימיות של כל שאילתה. אין לתעד את החיפוש כ„ללא שליחת נתונים” רק משום שהחישוב מתבצע מקומית.
- שינוי נוסח ההסכמה צריך להתאים לגרסת ההסכמה השמורה.
- שינוי זהות המודל מחייב טיפול בנתונים שכבר הותקנו.
- החלפת ספרייה צריכה לרענן את התאמת הווקטורים.
- שאילתה חדשה, ביטול וסגירת כרטיסייה צריכים לעצור עבודה שאינה רלוונטית עוד.
- הנתיב המילולי, תצוגת הדיבוג והמנוע הסמנטי צריכים להישאר ניתנים להבחנה בבדיקות ובדיווח.
דף הבית · התחלת העבודה · שאלות נפוצות · פתרון תקלות
מדריך המשתמש נבדק מול גרסה 0.9.98.3+809; פרטי גרסאות ומועד הבדיקה בדף הבית.
התחלה מהירה
קריאה וחיפוש
אישי ותחזוקה
- כרטיסיות ושולחנות
- סימניות והערות
- ספרים אישיים
- מסדים אישיים
- גיבוי ושחזור
- הגדרות
- עדכונים
- תוספים
- כלים
- קישורים ישירים
תיעוד למפתחים
יסודות
נתונים
קריאה
חיפוש
מערכת
ממשק