ה-SDK של Google Cloud Search כולל פרמטרים להגדרה שסופקו על ידי Google לכל המחברים. שינוי ההגדרות האלה יכול לייעל את יצירת האינדקס של הנתונים. במדריך הזה מפורטות בעיות נפוצות בהוספה לאינדקס וההגדרות שצריך לשנות כדי לפתור אותן.
תפוקת אינדוקס נמוכה עבור FullTraversalConnector
בטבלה הבאה מפורטות הגדרות לשיפור קצב העברת הנתונים של FullTraversalConnector:
| הגדרה | תיאור | ברירת מחדל | השינוי שהוצע |
|---|---|---|---|
traverse.partitionSize |
מספר הפריטים ApiOperation() שעברו עיבוד באצוות. ה-SDK ממתין עד שחלוקה תושלם לפני שהוא מאחזר עוד נתונים. |
50 | אם יש לכם מספיק זיכרון, כדאי להגדיל את הערך ל-1,000 או יותר. |
batch.batchSize |
מספר הבקשות שצורפו יחד. | 10 | כדאי לנסות להקטין את גודל האצווה. |
batch.maxActiveBatches |
מספר האצוות המקסימלי שניתן להפעיל בו-זמנית. | 20 | אם מקטינים את batchSize, צריך להגדיל את הערך הזה באמצעות: (partitionSize / batchSize) + 50. |
traverse.threadPoolSize |
מספר השרשורים לעיבוד מקביל. | 50 | אפשר להגדיל את המספר הזה בכפולות של 10. |
אפשר להשתמש ב-setRequestMode() כדי לעבור בין מצבי בקשת API ASYNCHRONOUS ו-SYNCHRONOUS.
תפוקת אינדוקס נמוכה עבור ListTraversalConnector
ListTraversalConnector משתמש ב-traverser אחד כברירת מחדל. כדי להגדיל את קצב העברת הנתונים, יוצרים כמה סורקים למצבי פריטים ספציפיים (למשל,
NEW_ITEM, MODIFIED).
| הגדרה | תיאור | ברירת מחדל | שינוי |
|---|---|---|---|
repository.traversers | יוצרת מעברים נפרדים עם שמות ייחודיים (לדוגמה, t1, t2). | One traverser | הוספת עוד סורקים. |
traversers.t1.hostload | מספר השרשורים לאינדוקס פריטים בו-זמנית. | 5 | כדאי לנסות ערכים של 10 או יותר. |
schedule.pollQueueIntervalSecs | מספר השניות להמתנה לפני סקר חוזר של תור ריק. | 10 | אפשר לנסות להקטין את הערך ל-1. |
traverser.t1.pollRequest.statuses | סטטוסים
להוספה לאינדקס (למשל, NEW_ITEM). | הכול | להשתמש ב-traversers שונים לסטטוסים שונים. |
פסק זמן או הפרעות ב-SDK
אם נתקלתם בפסק זמן כשניסיתם להעלות קבצים גדולים, כדאי להגדיל את פסק הזמן באמצעות traverser.timeout=seconds (ברירת המחדל היא 60 שניות). אפשר גם להגדיל את הזמן הקצוב לתפוגה של בקשות API:
| פרמטר | תיאור | ברירת מחדל |
|---|---|---|
indexingService.connectTimeoutSeconds |
זמן קצוב לתפוגה של בקשות API. | 120 שניות |
indexingService.readTimeoutSeconds |
זמן קצוב לתפוגה (timeout) לקריאה של בקשות API. | 120 שניות |