פריסת מחבר 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 באמצעות Indexing 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 CSV.

ערכי הפורמט כוללים: 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 שהערכים שלהן ישמשו ליצירת המזהה הייחודי של כל רשומה. אם לא צוין הגיבוב, יש להשתמש בגיבוב של רשומת ה-CSV כמפתח ייחודי שלה. ערך ברירת המחדל הוא קוד הגיבוב (hash) של הרשומה.

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

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

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

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

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

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

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

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

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

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

פרמטרים של הגדרת מטא-נתונים

'פרמטרים של הגדרת מטא-נתונים' מתארים את עמודות ה-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

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

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

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

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

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

הגדרה פרמטר
פורמטים נוספים של תאריכים ושעות structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX
רשימה שמופרדת בנקודה-פסיק של תבניות נוספות של JavaScript.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 – צירוף לתבנית שדות תוכן שלא צוינו
  • התעלמות – התעלמות משדות תוכן שלא צוינו

    ערך ברירת המחדל הוא 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=defaultAcl.readers.groups
קוראי 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=defaultAcl.readers.groups
  • 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 שמכיל מידע על Movies.

נניח שקובץ ה-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.