ה-SDK של המחבר ו-Cloud Search API תומכים ביצירה של תורים של ניהול אינדקס ב-Cloud Search. אפשר להשתמש בתורים האלה כדי:
- שמירה על מצב לכל מסמך (סטטוס, גיבובים וכו') כדי לשמור על סנכרון האינדקס.
- שומרים רשימה של פריטים לאינדוקס, כפי שהתגלו במהלך הסריקה.
- לתעדף פריטים לפי הסטטוס שלהם.
- שמירה של פרטי מצב כמו נקודות ביקורת וטוקנים של שינויים.
תור הוא תווית שמוקצית לפריט שעבר אינדוקס (למשל, "default").
סטטוס ועדיפות
העדיפות של מסמך תלויה בקוד ItemStatus שלו. הקודים האפשריים, לפי סדר העדיפות (מהגבוהה ביותר לנמוכה ביותר):
-
ERROR: הפריט נתקל בשגיאה אסינכרונית וצריך להוסיף אותו מחדש לאינדקס. -
MODIFIED: הפריט נוסף לאינדקס בעבר, אבל השתנה במאגר. NEW_ITEM: הפריט עדיין לא נוסף לאינדקס.-
ACCEPTED: הפריט עבר אינדוקס בעבר ולא השתנה.
לפריטים עם אותו סטטוס, תינתן עדיפות גבוהה יותר לפריטים שנמצאים בתור הכי הרבה זמן.
אינדוקס של פריט חדש או פריט שהשתנה
איור 1 מציג את השלבים לאינדוקס של פריט חדש או פריט שעבר שינוי באמצעות תור אינדוקס. השלבים האלה מתייחסים לקריאות ל-REST API. למידע על פעולות מקבילות ב-SDK, אפשר לעיין במאמר פעולות בתור (Connector SDK).
- מחבר התוכן משתמש ב-
items.pushכדי להעביר מטא-נתונים וערכי גיבוב לתור.- אם המחבר כולל
typeאוcontentHash, Cloud Search קובע את הסטטוס. - פריטים לא ידועים מקבלים את הסטטוס
NEW_ITEM. - פריטים קיימים עם ערכי hash תואמים נשארים
ACCEPTED. - פריטים קיימים עם ערכי hash שונים הופכים ל
MODIFIED.
- אם המחבר כולל
- המחבר משתמש ב-
items.pollכדי לקבוע אילו פריטים להוסיף לאינדקס. Cloud Search מחזיר פריטים לפי סדר עדיפות. - המחבר מאחזר פריטים מהמאגר ויוצר בקשות ל-Index API.
- המחבר משתמש ב-
items.indexכדי ליצור אינדקס לפריטים. פריט עובר למצבACCEPTEDאחרי עיבוד מוצלח.
מחיקת פריט
אסטרטגיית הסריקה המלאה משתמשת בשני תורים כדי ליצור אינדקס של פריטים ולזהות מחיקות. איור 2 מציג את המעבר השני באסטרטגיה הזו.
- במעבר הראשוני, המחבר דוחף פריטים ל'תור א' בתור
NEW_ITEM. כל פריט מקבל את התווית 'א'. - המחבר מבצע שאילתות חוזרות בתור A ומבצע אינדוקס של הפריטים.
- במעבר המלא השני, המחבר דוחף פריטים ל'תור ב'.
- פריטים לא ידועים מקבלים את התווית 'B' ואת הסטטוס
NEW_ITEM. - פריטים קיימים עם ערכי hash תואמים משנים את התווית שלהם ל-B ונשארים
ACCEPTED. - פריטים קיימים עם ערכי hash שונים משנים את התווית שלהם ל-B והופכים ל
MODIFIED.
- פריטים לא ידועים מקבלים את התווית 'B' ואת הסטטוס
- המחבר מבצע סקר בתור B ומבצע אינדוקס לפריטים.
- לבסוף, המחבר קורא ל-
deleteQueueItemsבתור A. כל הפריטים הקודמים שעדיין יש להם את התווית 'A' יימחקו. - במעברים הבאים, התפקידים של שני התורים מתחלפים.
פעולות בתור (Connector SDK)
משתמשים בבונה pushItems כדי להעביר פריטים. ה-SDK שולף פריטים מהתור באופן אוטומטי לפי סדר העדיפות באמצעות השיטה getDoc של המחלקה Repository.
פעולות בתור (REST API)
- כדי לבצע push: משתמשים בפקודה
Items.push. - כדי ליצור סקר, משתמשים בפקודה
Items.poll.
אפשר גם להשתמש ב-Items.index כדי להעביר פריטים במהלך יצירת האינדקס. הפריטים האלה מקבלים באופן אוטומטי את הסטטוס ACCEPTED.
Items.push
השיטה הזו מוסיפה מזהים לתור. התוצאה נקבעת לפי הערך של התג type. העברת מזהה חדש מוסיפה רשומה עם סטטוס NEW_ITEM.
המטען הייעודי (payload) האופציונלי מוחזר במהלך הסקר.
פריטים שנבחרו מוזמנים ואי אפשר להחזיר אותם באמצעות קריאות אחרות ל-poll. שימוש ב-Items.push עם type שמוגדר ל-NOT_MODIFIED, ל-REPOSITORY_ERROR או ל-REQUEUE מבטל את השמירה של הערכים.
Items.push עם גיבובים
מציינים את המטא-נתונים או את הגיבובים של התוכן בבקשת הדחיפה.
Cloud Search משווה את הערכים האלה לערכים שמאוחסנים. אם הם לא תואמים, הערך הופך ל-MODIFIED. מזהים לא תואמים שלא קיימים הופכים ל-NEW_ITEM.
Items.poll
השיטה הזו מאחזרת רשומות בעדיפות גבוהה. כל רשומה שמוחזרת שמורה עד שהיא יוצאת משימוש, עד שהיא עוברת אינדוקס מחדש או עד שהיא מפסיקה להיות שמורה באמצעות Items.push.