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