פריסת מחבר 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 או Cloud Search Query API. מחבר ה-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. התקנת תוכנת המחבר של Google Cloud Search CSV
  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
  • עמודות שמגדירות מזהה ייחודי
  • אפשרויות מעבר
  • אפשרויות של רשימת בקרת גישה להגבלת הגישה לנתונים

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

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

  1. פותחים כלי לעריכת טקסט לבחירתכם ונותנים שם לקובץ ההגדרות.
    מוסיפים תוכן לקובץ בצורה של צמדי מפתח=ערך, כמו שמתואר בקטעים הבאים.
  2. שומרים את קובץ ההגדרות ונותנים לו שם.
    מומלץ לתת שם לקובץ ההגדרות 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. ערך ברירת המחדל הוא קוד הגיבוב של הרשומה.

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

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

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

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

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

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

פרמטרים של כתובת URL של תוצאות חיפוש שצריך להוסיף להם escape 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

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

סוג אובייקט בסכימה 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. תזמון של סריקת נתונים

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

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

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

הגדרה פרמטר
סריקה מלאה אחרי פרק זמן מסוים schedule.traversalIntervalSecs=7200

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

סריקה מלאה בהפעלה של המחבר schedule.performTraversalOnStart=false

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

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

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

אם במאגר שלכם יש פרטי ACL שמשויכים לכל מסמך, אתם צריכים להעלות את כל פרטי ה-ACL כדי לשלוט בגישה למסמכים ב-Cloud Search. אם המאגר מספק מידע חלקי או לא מספק מידע על רשימת 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
Common Acl denied readers 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

תיאורים מפורטים של כל פרמטר מופיעים במאמר בנושא פרמטרים של הגדרות.

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

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

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

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