פריסת מחבר CSV

מדריך זה מיועד למנהלי מחברים של קובצי CSV (ערכים מופרדים בפסיקים) של Google Cloud Search, כלומר לכל מי שאחראי על הורדה, הגדרה, הפעלה ומעקב אחרי המחבר.

המדריך הזה כולל הוראות לביצוע משימות מרכזיות שקשורות לפריסת מחבר CSV:

  • הורד את תוכנת מחבר ה-CSV של Google Cloud Search
  • הגדרת המחבר לשימוש עם מקור נתונים ספציפי לקובץ CSV
  • פריסה והפעלה של המחבר

כדי להבין את המושגים במסמך הזה, כדאי להכיר את היסודות של Google Workspace, קובצי CSV ורשימות בקרת גישה (ACL).

סקירה כללית של מחבר ה-CSV של Google Cloud Search

מחבר ה-CSV של Cloud Search פועל עם כל קובץ טקסט עם ערכים מופרדים בפסיקים (CSV). קובץ CSV שומר נתונים בפורמט טבלה, וכל שורה בקובץ היא רשומת נתונים.

מחבר ה-CSV של Google Cloud Search מחלץ שורות נפרדות מקובץ CSV ומוסיף אותן לאינדקס ל-Cloud Search באמצעות API לאינדקס של Cloud Search. אחרי שסיימתי להוסיף לאינדקס שורות ספציפיות מקובצי CSV, תוכלו לחפש אותן דרך הלקוחות של Cloud Search או דרך Query API של Cloud Search. מחבר ה-CSV תומך גם בשליטה בגישה של משתמשים לתוכן שמופיע בתוצאות החיפוש, באמצעות רשימות ACL.

אפשר להתקין את מחבר ה-CSV של Google Cloud Search ב-Linux או ב-Windows. לפני שפורסים את מחבר ה-CSV של Google Cloud Search, וודאו שיש לכם את הרכיבים הנדרשים הבאים:

  • Java JRE 1.8 מותקנת במחשב שמריץ את מחבר ה-CSV של Google Cloud Search
  • המידע מ-Google Workspace שנדרש כדי ליצור קשר בין Google Cloud Search לבין מקור הנתונים:

    בדרך כלל, האדמין ב-Google Workspace של הדומיין יכול לספק לכם את פרטי הכניסה האלה.

שלבי הפריסה

כדי לפרוס את מחבר ה-CSV של Google Cloud Search, מבצעים את השלבים הבאים:

  1. התקנת תוכנת מחבר ה-CSV של Google Cloud Search
  2. ציון ההגדרה של מחבר ה-CSV
  3. הגדרת הגישה למקור הנתונים של Google Cloud Search
  4. הגדרת גישה לקובץ CSV
  5. ציון שמות של עמודות להוספה לאינדקס, עמודות מפתח ייחודיות ועמודות של תאריך ושעה
  6. ציון עמודות לשימוש בכתובות URL של תוצאות חיפוש שניתן ללחוץ עליהן
  7. ציון פרטי מטא-נתונים, פורמטים של עמודות
  8. תזמון של מעבר נתונים
  9. ציון אפשרויות לרשימת בקרת גישה (ACL)

‫1. התקנת ה-SDK

מתקינים את ה-SDK במאגר Maven המקומי.

  1. שכפול מאגר ה-SDK מ-GitHub.

    $ git clone https://github.com/google-cloudsearch/connector-sdk.git
    $ cd connector-sdk/csv
  2. בדוק את גרסת ה-SDK הרצויה:

    $ git checkout tags/v1-0.0.3
  3. בונים את המחבר:

    $ mvn package
  4. מעתיקים את קובץ ה-ZIP של המחבר לספריית ההתקנה המקומית:

    $ cp target/google-cloudsearch-csv-connector-v1-0.0.3.zip installation-dir
    $ cd installation-dir
    $ unzip google-cloudsearch-csv-connector-v1-0.0.3.zip
    $ cd google-cloudsearch-csv-connector-v1-0.0.3

2. ציון ההגדרה של מחבר ה-CSV

בתור מנהל המחבר, אתם שולטים בהתנהגות של מחבר ה-CSV ובמאפיינים שמגדירים פרמטרים בקובץ התצורה של המחבר. הפרמטרים שניתן להגדיר כוללים:

  • גישה למקור נתונים
  • המיקום של קובץ ה-CSV
  • הגדרות של עמודות בפורמט CSV
  • עמודות המגדירות מזהה ייחודי
  • אפשרויות מעבר
  • אפשרויות ACL להגבלת הגישה לנתונים

כדי שהמחבר יוכל לגשת כראוי לקובץ CSV ולהוסיף את התוכן הרלוונטי לאינדקס, תחילה עליכם ליצור את קובץ התצורה שלו.

כדי ליצור קובץ תצורה:

  1. פותחים עורך טקסט לבחירתכם ונותנים שם לקובץ התצורה.
    מוסיפים צמדי key=value לתוכן הקובץ, כפי שמתואר בקטעים הבאים.
  2. שומרים את קובץ התצורה ונותנים לו שם.
    Google ממליצה לתת לקובץ התצורה את השם connector-config.properties כך שלא נדרשים פרמטרים נוספים של שורת הפקודה כדי להפעיל מחבר.

מכיוון שניתן לציין את הנתיב של קובץ התצורה בשורת הפקודה, אין צורך במיקום סטנדרטי של קובץ. עם זאת, כדאי להשאיר את קובץ התצורה באותה ספרייה שבה נמצא המחבר, כדי לפשט את המעקב ולהפעיל את המחבר.

כדי לוודא שהמחבר מזהה את קובץ התצורה, ציינו את הנתיב שלו בשורת הפקודה. אחרת, המחבר ישתמש ב-connector-config.properties בספרייה המקומית בתור שם הקובץ המוגדר כברירת מחדל. למידע על ציון נתיב התצורה בשורת הפקודה, ראו את המאמר הרצת מחבר ה-CSV של Cloud Search.

3. הגדרת הגישה למקור הנתונים של Google Cloud Search

הפרמטרים הראשונים שצריך לציין בכל קובץ תצורה הם הפרמטרים הנדרשים כדי לגשת למקור הנתונים של Cloud Search, כפי שמוצג בטבלה הבאה. כדי להגדיר את הגישה של המחבר ל-Cloud Search, בדרך כלל תצטרכו את מזהה מקור הנתונים, את מספר חשבון השירות ואת הנתיב לקובץ המפתח הפרטי של חשבון השירות. השלבים הנדרשים להגדרת מקור נתונים מתוארים במאמר ניהול מקורות נתונים של צד שלישי

הגדרה פרמטר
מזהה של מקור נתונים api.sourceId=1234567890abcdef

חובה. מזהה המקור ב-Google Cloud Search שהוגדר על ידי האדמין ב-Google Workspace, כפי שמתואר במאמר ניהול מקורות נתונים של צד שלישי.

נתיב לקובץ המפתח הפרטי של חשבון השירות api.serviceAccountPrivateKeyFile=./PrivateKey.json

חובה. קובץ מפתח של חשבון שירות ב-Google Cloud Search לנגישות במחבר CSV של Google Cloud Search.

המזהה של מקור הזהות api.identitySourceId=x0987654321

חובה אם משתמשים בקבוצות ובמשתמשים חיצוניים. מזהה מקור הזהות של Google Cloud Search שהוגדר על ידי האדמין ב-Google Workspace.

4. הגדרת פרמטרים של קובץ CSV

לפני שהמחבר יכול להעביר קובץ CSV ולחלץ ממנו נתונים לצורך הוספה לאינדקס, עליך לזהות את הנתיב לקובץ. ניתן גם לציין את פורמט הקובץ והסוג של קידוד הקובץ. הוסיפו את הפרמטרים הבאים כדי לציין את המאפיינים של קובץ ה-CSV בקובץ התצורה.

הגדרה פרמטר
נתיב לקובץ ה-CSV csv.filePath=./movie_content.csv

חובה. הנתיב לקובץ ה-CSV שאליו צריך לגשת ומחלץ את התוכן להוספה לאינדקס.

פורמט הקובץ csv.format=DEFAULT

הפורמט של הקובץ. הערכים האפשריים מגיעים מהמחלקה CSVFormat של Apache Commons.

ערכי הפורמט כוללים: DEFAULT, EXCEL, INFORMIX_UNLOAD, INFORMIX_UNLOAD_CSV, MYSQL, RFC4180, ORACLE, POSTGRESQL_CSV, POSTGRESQL_TEXT וגם TDF. אם לא צוין אחרת, Cloud Search ישתמש ב-DEFAULT.

התאמה לפורמט הקובץ csv.format.withMethod=value

שינוי באופן הטיפול של Cloud Search בקובץ. השיטות האפשריות הן מחלקה CSVFormat של Apache Commons בפורמט CSV, וכוללות שימוש בתו יחיד, במחרוזת או בערך בוליאני.

לדוגמה, כדי לציין נקודה ופסיק כתו מפריד, משתמשים ב-csv.format.withDelimiter=;. כדי להתעלם משורות ריקות, יש להשתמש בפונקציה csv.format.withIgnoreEmptyLines=true.

סוג קידוד הקובץ csv.fileEncoding=UTF-8

התו Java שמוגדר לשימוש כש-Cloud Search קורא את הקובץ. אם לא צוינה, Cloud Search ישתמש בקבוצת התווים שמוגדרת כברירת מחדל בפלטפורמה.

5. מציינים את שמות העמודות שרוצים להוסיף לאינדקס, ועמודות עם מפתח ייחודיות

כדי שהמחבר יוכל לגשת לקובצי CSV ולהוסיף אותם לאינדקס, יש לספק מידע על הגדרות העמודות בקובץ התצורה. אם קובץ התצורה לא מכיל את הפרמטרים שמציינים את שמות העמודות ליצירת אינדקס ועמודות של מפתחות ייחודיים, נעשה שימוש בערכי ברירת מחדל.

הגדרה פרמטר
עמודות להוספה לאינדקס csv.csvColumns=movieId,movieTitle,description,actors,releaseDate,year,userratings...

שמות העמודות שיש להוסיף לאינדקס מקובץ ה-CSV. אם לא מגדירים את הערך csv.csvColumns, השורה הראשונה של קובץ ה-CSV משמשת ככותרת. אם מגדירים את הערך csv.csvColumns, היא מקבלת עדיפות על פני השורה הראשונה בקובץ ה-CSV. אם הגדרת את csv.csvColumns והשורה הראשונה בקובץ ה-CSV היא רשימה של שמות עמודות, צריך להגדיר את csv.skipHeaderRecord=true כדי להימנע מניסיון להוסיף את השורה הראשונה לאינדקס כנתונים. ערכי ברירת המחדל הם העמודות בשורת הכותרת של הקובץ.

עמודות מפתח ייחודיות csv.uniqueKeyColumns=movieId

העמודות בקובץ ה-CSV שהערכים שלהן ישמשו ליצירת המזהה הייחודי של כל רשומה. אם לא מציינים זאת, ה-hash של רשומת ה-CSV צריך לשמש כמפתח ייחודי שלה. ערך ברירת המחדל הוא ה-hashcode של הרשומה.

6. ציין עמודות לשימוש בכתובות URL של תוצאות חיפוש שניתן ללחוץ עליהן

כשמשתמש מבצע חיפוש באמצעות Google Cloud Search, התגובה שלו מוצגת על ידי הצגת דף תוצאות שכולל כתובות URL שניתן ללחוץ עליהן עבור כל תוצאה. כדי להפעיל את התכונה הזו צריך להוסיף לקובץ התצורה את הפרמטר שמוצג בטבלה הבאה.

הגדרה פרמטר
הפורמט של כתובת ה-URL של תוצאת החיפוש url.format=https://mymoviesite.com/movies/{0}

חובה. הפורמט לבניית כתובת אתר לתצוגה עבור תוכן CSV.

פרמטרים של כתובת אתר של תוצאות חיפוש. url.columns=movieId

חובה. שמות העמודות בקובץ ה-CSV שהערכים שלהן ישמשו ליצירת כתובת ה-URL לתצוגה של הרשומה.

פרמטרים של כתובת אתר של תוצאות חיפוש שצריך לסמן בתו בריחה url.columnsToEscape=movieId

זה שינוי אופציונלי. שמות העמודות בפורמט CSV שבערכים שלהן המערכת תסמן בתו מילוט (escape) את כתובת ה-URL כדי ליצור כתובת URL חוקית לתצוגה.

7. ציון פרטי מטא-נתונים, פורמטים של עמודות, איכות החיפוש

ניתן להוסיף פרמטרים לקובץ התצורה שמציינים את הפרטים הבאים:

פרמטרים של תצורת מטא-נתונים

Metadata Configuration Parameters (פרמטרים של תצורת מטא-נתונים) מתאר את העמודות בקובץ CSV שמשמשות לאכלוס המטא-נתונים של פריטים. אם קובץ התצורה לא מכיל את הפרמטרים האלה, המערכת משתמשת בערכי ברירת המחדל. בטבלה הבאה מוצגים הפרמטרים האלה.

הגדרה פרמטר
שם הסרטון itemMetadata.title.field=movieTitle
itemMetadata.title.defaultValue=Gone with the Wind

מאפיין המטא נתונים שמכיל את הערך התואם לכותרת המסמך. ערך ברירת המחדל הוא מחרוזת ריקה.

כתובת URL itemMetadata.sourceRepositoryUrl.field=url
itemMetadata.sourceRepositoryUrl.defaultValue=https://www.imdb.com/title/tt0031381/
מאפיין המטא-נתונים שמכיל את הערך של כתובת ה-URL של המסמך בתוצאות החיפוש.
חותמת הזמן של היצירה itemMetadata.createTime.field=releaseDate
itemMetadata.createTime.defaultValue=1940-01-17

מאפיין המטא-נתונים שמכיל את הערך של חותמת הזמן של יצירת המסמך.

זמן השינוי האחרון itemMetadata.updateTime.field=releaseDate
itemMetadata.updateTime.defaultValue=1940-01-17

מאפיין המטא-נתונים שמכיל את הערך של חותמת הזמן של השינוי האחרון במסמך.

שפת המסמך itemMetadata.contentLanguage.field=languageCode
itemMetadata.contentLanguage.defaultValue=en-US

שפת התוכן של המסמכים שנוספים לאינדקס.

סוג אובייקט הסכימה itemMetadata.objectType.field=type
itemMetadata.objectType.defaultValue=movie

סוג האובייקט שבו משתמש המחבר, כפי שמוגדר בסכימה. המחבר לא יוסיף לאינדקס נתונים מובְנים אם המאפיין הזה לא צוין.

פורמטים של תאריך ושעה

פורמטים של תאריך ושעה מציינים את הפורמטים הצפויים במאפייני המטא נתונים. אם קובץ התצורה לא מכיל את הפרמטר הזה, המערכת משתמשת בערכי ברירת המחדל. הטבלה הבאה מציגה את הפרמטר הזה.

הגדרה פרמטר
פורמטים נוספים של תאריך ושעה structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX
רשימה מופרדת באמצעות נקודה-פסיק של תבניות נוספות של Java.time.format.DateTimeFormatter. נעשה שימוש בתבניות האלה במהלך ניתוח ערכי מחרוזות של שדות תאריך או תאריך ושעה במטא-נתונים או בסכימה. ערך ברירת המחדל הוא רשימה ריקה, אבל הפורמטים RFC 3339 ו-RFC 1123 תמיד נתמכים.

פורמטים של עמודות

הפורמטים של העמודות מציינים מידע על העמודות שצריכות להיות חלק מהתוכן שאפשר לחפש. אם קובץ התצורה לא מכיל את הפרמטרים האלה, המערכת משתמשת בערכי ברירת המחדל. בטבלה הבאה מוצגים הפרמטרים האלה.

הגדרה פרמטר
דילוג על הכותרת csv.skipHeaderRecord=true

בוליאני. התעלמות מרשומת הכותרת (השורה הראשונה) בקובץ ה-CSV. אם הגדרתם את csv.csvColumns ובקובץ ה-CSV יש שורת כותרת, אז צריך להגדיר את skipHeaderRecord=true. הפעולה הזו מונעת הוספה של השורה הראשונה בקובץ כנתונים לאינדקס. אם בקובץ ה-CSV אין שורת כותרת, צריך להגדיר: skipHeaderRecord=false. ערך ברירת המחדל הוא False.

עמודות מרובות ערכים csv.multiValueColumns=genre,actors

שמות העמודות בקובץ ה-CSV שיש בהם מספר ערכים. ערך ברירת המחדל הוא מחרוזת ריקה.

מפריד לעמודות עם ערכים מרובים csv.multiValue.genre=;

התו המפריד לעמודות עם ערכים מרובים. ברירת המחדל למפריד היא פסיק.

איכות החיפוש

מחבר ה-CSV של Cloud Search מאפשר עיצוב HTML אוטומטי לשדות נתונים. המחבר מגדיר את שדות הנתונים בתחילת ההפעלה של המחבר, ולאחר מכן משתמש בתבנית תוכן כדי לעצב כל רשומת נתונים לפני ההעלאה ל-Cloud Search.

תבנית התוכן מגדירה את החשיבות של כל ערך בשדה עבור החיפוש. חובה למלא את שדה הכותרת והוא מוגדר בעדיפות הגבוהה ביותר. ניתן לך להגדיר רמות חשיבות של איכות החיפוש בכל שאר שדות התוכן: גבוהה, בינונית או נמוכה. כל שדה תוכן שלא מוגדר בקטגוריה מסוימת מוגדר כברירת מחדל לעדיפות נמוכה. בטבלה הבאה מוצגים הפרמטרים האלה.

הגדרה פרמטר
שם התוכן contentTemplate.csv.title=movieTitle

כותרת התוכן היא השדה של איכות החיפוש הגבוהה ביותר.

איכות חיפוש גבוהה בשדות תוכן contentTemplate.csv.quality.high=actors

שדות תוכן בעלי ערך גבוה של איכות חיפוש. ערך ברירת המחדל הוא מחרוזת ריקה.

איכות חיפוש נמוכה בשדות התוכן contentTemplate.csv.quality.low=genre

שדות תוכן קיבלו ערך נמוך של איכות חיפוש. ערך ברירת המחדל הוא מחרוזת ריקה.

איכות חיפוש בינונית בשדות תוכן contentTemplate.csv.quality.medium=description

שדות תוכן שקיבלו ערך איכות חיפוש בינוני. ערך ברירת המחדל הוא מחרוזת ריקה.

שדות תוכן שלא צוינו contentTemplate.csv.unmappedColumnsMode=IGNORE

האופן שבו המחבר מטפל בשדות תוכן שלא צוינו. הערכים החוקיים כוללים:

  • APPEND – צירוף שדות תוכן שלא צוינו לתבנית
  • IGNORE – התעלמות משדות תוכן שלא צוינו

    ערך ברירת המחדל הוא APPEND..

8. תזמון של מעבר נתונים

Traversal הוא התהליך של המחבר לגילוי תוכן ממקור הנתונים, במקרה הזה, קובץ CSV. בזמן שמחבר ה-CSV פועל, הוא יחצה את השורות של קובץ CSV ויוסיף כל שורה לאינדקס ל-Cloud Search דרך ה-API להוספה לאינדקס.

מעבר מלא יוצר אינדקס של כל העמודות בקובץ. מעבר מצטבר מוסיף לאינדקס רק עמודות שנוספו או שונו מאז המעבר הקודם. מחבר ה-CSV מבצע חציות מלאות בלבד. הוא לא מבצע מעברים מצטברים.

הפרמטרים של התזמון קובעים את התדירות שבה המחבר ימתין בין מעברים. אם קובץ התצורה לא מכיל פרמטרים של תזמון, המערכת משתמשת בערכי ברירת המחדל. בטבלה הבאה מוצגים הפרמטרים האלה.

הגדרה פרמטר
מעבר מלא אחרי מרווח schedule.traversalIntervalSecs=7200

המחבר מבצע מעבר מלא אחרי מרווח זמן שצוין. ציין את המרווח בין חציות בשניות. ערך ברירת המחדל הוא 86400 (מספר השניות ביום).

מעבר מלא בהפעלת המחבר schedule.performTraversalOnStart=false

המחבר מבצע מעבר מלא בזמן אתחול המחבר, במקום להמתין שיפוג התוקף של המרווח הראשון. ערך ברירת המחדל הוא true.

9. ציון אפשרויות של רשימת בקרת גישה (ACL)

מחבר ה-CSV של Google Cloud Search תומך בהרשאות באמצעות רשימות ACL, לשליטה בגישה לתוכן של קובץ ה-CSV בתוצאות החיפוש. יש כמה אפשרויות של רשימות ACL שמאפשרות להגן על גישת המשתמשים לרשומות שנוספו לאינדקס.

אם למאגר יש פרטי ACL נפרדים לכל מסמך, עליכם להעלות את כל פרטי ה-ACL כדי לשלוט בגישה למסמכים בתוך Cloud Search. אם המאגר מספק מידע חלקי על רשימות ACL או לא מספק מידע ACL זה, אפשר לספק פרטי ברירת מחדל של ACL בפרמטרים הבאים, שה-SDK מספק למחבר.

המחבר מסתמך על הפעלת ברירת מחדל של רשימות ACL בקובץ התצורה. כדי להפעיל כברירת מחדל רשימות ACL, מגדירים את defaultAcl.mode לכל מצב שהוא שאינו none ומגדירים אותו עם defaultAcl.*

הגדרה פרמטר
מצב ACL defaultAcl.mode=fallback

חובה. מחבר CSV מסתמך על פונקציונליות ברירת המחדל של ACL. המחבר תומך רק במצב חלופי.

שם ברירת המחדל של ACL defaultAcl.name=VIRTUAL_CONTAINER_FOR_CONNECTOR_1

זה שינוי אופציונלי. המדיניות מאפשרת לבטל את שם הקונטיינר הווירטואלי שמשמש את המחבר כדי להגדיר ברירת מחדל לרשימות ACL. ערך ברירת המחדל הוא "DEFAULT_ACL_VIRTUAL_CONTAINER". אפשר לשנות את הערך הזה אם כמה מחברים מוסיפים לאינדקס תוכן באותו מקור נתונים.

ברירת מחדל לרשימת ACL ציבורית defaultAcl.public=true

כברירת מחדל, רשימת ה-ACL שמשמשת את המאגר כולו מוגדרת לגישה לדומיין ציבורי. ערך ברירת המחדל הוא false.

קוראים נפוצים של קבוצות ACL defaultAcl.readers.groups=google:group1, group2
קוראי ACL נפוצים defaultAcl.readers.users=user1, user2, google:user3
רשימת ACL קיימת שדוחה קוראים של קבוצות defaultAcl.denied.groups=group3
קוראים שלא הצטרפו ל-Acl defaultAcl.denied.users=user4, user5
גישה לכל הדומיין כדי לציין שכל רשומה שנוספה לאינדקס תהיה נגישה באופן ציבורי לכל משתמש בדומיין, הגדר ערכים בשתי האפשרויות הבאות:
  • defaultAcl.mode=fallback
  • defaultAcl.public=true
רשימת ACL מוגדרת משותפת כדי לציין ACL אחד לכל רשומה במאגר הנתונים, מגדירים את כל ערכי הפרמטרים הבאים:
  • defaultAcl.mode=fallback
  • defaultAcl.public=false
  • defaultAcl.readers.groups=google:group1, group2
  • defaultAcl.readers.users=user1, user2, google:user3
  • defaultAcl.denied.groups=group3
  • defaultAcl.denied.users=user4, user5

    ההנחה היא שכל משתמש וקבוצה מוגדרים כדומיין מקומי של משתמש או קבוצה, אלא אם התחילית של "google:" (קבועה מילולית).

    המשתמש או הקבוצה שמוגדרים כברירת מחדל הם מחרוזת ריקה. צריך לספק אפשרויות של משתמשים וקבוצות רק אם הערך של defaultAcl.public הוא false. כדי לרשום מספר קבוצות ומשתמשים, אפשר להשתמש ברשימה מופרדת בפסיקים.

    אם defaultAcl.mode מוגדר כ-none, לא ניתן יהיה לחפש את הרשומות ללא רשימות ACL נפרדות מוגדרות.

הגדרת סכימה

Cloud Search מאפשר להוסיף לאינדקס תוכן מובנה ולא מובנה ולהציג אותו. כדי לתמוך בשאילתות של נתונים מובְנים לגבי הנתונים שלכם, צריך להגדיר סכימה עבור מקור הנתונים.

לאחר ההגדרה, מחבר CSV יכול להפנות לסכימה מוגדרת כדי לבנות בקשות להוספה לאינדקס. לצורך המחשה, נבחן קובץ CSV שמכיל מידע על סרטים.

נניח שקובץ ה-CSV שהוזן מכיל את התוכן הבא.

  1. movieId
  2. movieTitle
  3. תיאור
  4. שנה
  5. releaseDate
  6. שחקנים (ערכים מרובים מופרדים בפסיקים (,)
  7. ז'אנר (מספר ערכים)
  8. דירוגים

על סמך מבנה הנתונים שלמעלה, אפשר להגדיר סכימה למקור נתונים שבו רוצים להוסיף לאינדקס נתונים מקובץ CSV.

{
  "objectDefinitions": [
    {
      "name": "movie",
      "propertyDefinitions": [
        {
          "name": "actors",
          "isReturnable": true,
          "isRepeatable": true,
          "isFacetable": true,
          "textPropertyOptions": {
            "operatorOptions": {
              "operatorName": "actor"
            }
          }
        },
        {
          "name": "releaseDate",
          "isReturnable": true,
          "isRepeatable": false,
          "isFacetable": false,
          "datePropertyOptions": {
            "operatorOptions": {
              "operatorName": "released",
              "lessThanOperatorName": "releasedbefore",
              "greaterThanOperatorName": "releasedafter"
            }
          }
        },
        {
          "name": "movieTitle",
          "isReturnable": true,
          "isRepeatable": false,
          "isFacetable": false,
          "textPropertyOptions": {
            "retrievalImportance": {
              "importance": "HIGHEST"
            },
            "operatorOptions": {
              "operatorName": "title"
            }
          }
        },
        {
          "name": "genre",
          "isReturnable": true,
          "isRepeatable": true,
          "isFacetable": true,
          "enumPropertyOptions": {
            "operatorOptions": {
              "operatorName": "genre"
            },
            "possibleValues": [
              {
                "stringValue": "Action"
              },
              {
                "stringValue": "Documentary"
              },
              {
                "stringValue": "Drama"
              },
              {
                "stringValue": "Crime"
              },
              {
                "stringValue": "Sci-fi"
              }
            ]
          }
        },
        {
          "name": "userRating",
          "isReturnable": true,
          "isRepeatable": false,
          "isFacetable": true,
          "integerPropertyOptions": {
            "orderedRanking": "ASCENDING",
            "maximumValue": "10",
            "operatorOptions": {
              "operatorName": "score",
              "lessThanOperatorName": "scorebelow",
              "greaterThanOperatorName": "scoreabove"
            }
          }
        }
      ]
    }
  ]
}

קובץ תצורה לדוגמה

קובץ התצורה לדוגמה הבא מציג את צמדי הפרמטר key=value שמגדירים את התנהגות המחבר לדוגמה.

# data source access
api.sourceId=1234567890abcd
api.serviceAccountPrivateKeyFile=./PrivateKey.json

# CSV data structure
csv.filePath=./movie_content.csv
csv.csvColumns=movieId,movieTitle,description,releaseYear,genre,actors,ratings,releaseDate
csv.skipHeaderRecord=true
url.format=https://mymoviesite.com/movies/{0}
url.columns=movieId
csv.datetimeFormat.releaseDate=yyyy-mm-dd
csv.multiValueColumns=genre,actors
csv.multiValue.genre=;
contentTemplate.csv.title=movieTitle

# metadata structured data and content
itemMetadata.title.field=movieTitle
itemMetadata.createTime.field=releaseDate
itemMetadata.contentLanguage.defaultValue=en-US
itemMetadata.objectType.defaultValue=movie
contentTemplate.csv.quality.medium=description
contentTemplate.csv.unmappedColumnsMode=IGNORE

#ACLs
defaultAcl.mode=fallback
defaultAcl.public=true

לתיאורים מפורטים של כל פרמטר, אפשר לעיין בחומר העזר בנושא פרמטרים של תצורה.

הפעלת מחבר ה-CSV של Cloud Search

כדי להפעיל את המחבר משורת הפקודה, מקלידים את הפקודה הבאה:

$ java -jar google-cloudsearch-csv-connector-v1-0.0.3.jar -Dconfig=my.config

כברירת מחדל, יומני מחברים זמינים בפלט סטנדרטי. תוכלו לציין את הערך logging.properties כדי להתחבר לקבצים.