פריסת מחבר CSV

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

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

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

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

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

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

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

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

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

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

שלבי הפריסה

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

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

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

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

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

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

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 של תוצאות חיפוש. url.columns=movieId

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

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

זה שינוי אופציונלי. שמות העמודות ב-CSV שהערכים שלהן יימלטו מסימן ה-URL כדי ליצור כתובת 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=;

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

איכות החיפוש

המחבר של Cloud Search ל-CSV מאפשר עיצוב 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. תזמון סריקה של נתונים

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

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

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

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

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

סריקה מלאה בזמן ההפעלה של המחבר 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
קוראי 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

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

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

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

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

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