אתם יכולים להגדיר את Google Cloud Search כך שיציג למשתמשים תוכן אינטרנט באמצעות פריסת הפלאגין של Cloud Search Indexer ל-Apache Nutch, סורק אינטרנט בקוד פתוח.
כשמתחילים בסריקת האינטרנט, Apache Nutch סורק את האינטרנט ומשתמש בתוסף indexer כדי להעלות גרסאות בינאריות (או טקסט) מקוריות של תוכן המסמך ל-Google Cloud Search API. Cloud Search API מבצע אינדוקס של התוכן ומציג את התוצאות למשתמשים.
שיקולים חשובים
לפני שמפעילים את הפלאגין של הכלי ליצירת אינדקסים, חשוב להביא בחשבון את הנקודות הבאות.
דרישות מערכת
| דרישות מערכת | |
|---|---|
| מערכת הפעלה | ב-Linux בלבד:
|
| תוכנה |
|
| סוגי מסמכים של Apache Tika | Apache Tika 1.18 supported document formats |
פריסת הפלאגין ליצירת אינדקס
בשלבים הבאים מתואר איך להתקין את הפלאגין ליצירת אינדקס ואיך להגדיר את הרכיבים שלו כדי לסרוק כתובות URL ולהחזיר תוצאות ל-Cloud Search.
דרישות מוקדמות
לפני שמפעילים את הפלאגין ליצירת אינדקס, צריך לאסוף את המידע שנדרש לחיבור בין Cloud Search לבין מקור הנתונים:
- מפתח פרטי של Google Workspace (שכולל את מזהה חשבון השירות). מידע על קבלת מפתח פרטי זמין במאמר בנושא הגדרת גישה ל-Cloud Search API.
- מזהה מקור הנתונים של Google Workspace. מידע על השגת מזהה של מקור נתונים זמין במאמר הוספת מקור נתונים לחיפוש.
שלב 1: בנייה והתקנה של תוכנת הפלאגין ו-Apache Nutch
משכפלים את מאגר התוסף של כלי היצירה מ-GitHub.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
בודקים את הגרסה של תוסף יצירת האינדקס שרוצים:
$ git checkout tags/v1-0.0.5
יוצרים את הפלאגין של יצירת האינדקס.
$ mvn package
כדי לדלג על בדיקות כשיוצרים את הפלאגין, משתמשים בפקודה
mvn package -DskipTests.מורידים את Apache Nutch 1.15 ופועלים לפי ההוראות להתקנה של Apache Nutch.
חלצו את
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zipלתיקייה. מעתיקים את התיקייהplugins/indexer-google-cloudsearchלתיקייהpluginsשל Apache Nutch (apache-nutch-1.15/plugins).
שלב 2: הגדרת הפלאגין של יצירת האינדקס
כדי להגדיר את הפלאגין, יוצרים קובץ בשם plugin-configuration.properties.
כדי לגשת למקור הנתונים של Cloud Search, צריך לציין בקובץ ההגדרות את הפרמטרים הבאים.
| הגדרה | פרמטר |
| מזהה מקור הנתונים | api.sourceId = 1234567890abcdef
שדה חובה. מזהה המקור של Cloud Search שהאדמין ב-Google Workspace הגדיר עבור תוסף יצירת האינדקס. |
| חשבון שירות | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
שדה חובה. קובץ מפתח של חשבון שירות Cloud Search שהאדמין ב-Google Workspace יצר כדי לאפשר גישה לתוסף של כלי היצירה של האינדקס. |
בדוגמה הבאה מוצג קובץ הגדרה לדוגמה:
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
קובץ ההגדרות יכול להכיל גם פרמטרים ששולטים בהתנהגות של התוסף, כמו האופן שבו התוסף דוחף נתונים ל-Cloud Search API, והאופן שבו הוא מאכלס מטא-נתונים ונתונים מובְנים. תיאורים של הפרמטרים האלה מופיעים במאמר פרמטרים של מחברים שסופקו על ידי Google.
שלב 3: הגדרה של Apache Nutch
פותחים את
conf/nutch-site.xmlומוסיפים את הפרמטרים הבאים:הגדרה פרמטר התוסף כולל plugin.includes = textחובה. רשימת יישומי הפלאגין לשימוש. היא צריכה לכלול לפחות את הפרטים הבאים:
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xmlמספק ערך ברירת מחדל, אבל צריך להוסיף אליו אתindexer-google-cloudsearchבאופן ידני.שמות של מטא תגים metatags.names = textאופציונלי. רשימה מופרדת בפסיקים של תגים שממופים למאפיינים בסכימה של מקור הנתונים המתאים. מידע נוסף זמין במאמר בנושא Nutch-parse metatags.
בדוגמה הבאה אפשר לראות את השינוי הנדרש ב-
nutch-site.xml:<property> <name>plugin.includes</name> <value>protocol-(http|httpclient)|urlfilter-regex|index-(basic|more|metadata)|query-(basic|site|url|lang)|indexer-google-cloudsearch|nutch-extensionpoints|parse-(text|html|msexcel|msword|mspowerpoint|pdf|metatags)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)|parse-(html|tika|metatags)|index-(basic|anchor|more|metadata)</value> </property>פותחים את
conf/index-writers.xmlומוסיפים את הקטע הבא:<writer id="indexer_google_cloud_search_1" class="org.apache.nutch.indexwriter.gcs.GoogleCloudSearchIndexWriter"> <parameters> <param name="gcs.config.file" value="path/to/sdk-configuration.properties"/> </parameters> <mapping> <copy /> <rename /> <remove /> </mapping> </writer>הקטע
<writer>מכיל את הפרמטרים הבאים:הגדרה פרמטר הנתיב לקובץ ההגדרות של Cloud Search gcs.config.file = pathחובה. הנתיב המלא (המוחלט) לקובץ ההגדרה של Cloud Search.
פורמט ההעלאה gcs.uploadFormat = textאופציונלי. הפורמט שבו התוסף משתמש כדי להעביר את תוכן המסמך ל-Cloud Search API. הערכים החוקיים כוללים:
-
raw: דחיפה של תוכן מקורי שלא עבר המרה. -
text: דחיפה של תוכן טקסטואלי שחולץ. ערך ברירת המחדל הואraw.
-
שלב 4: הגדרת סריקת אתרים
לפני שמתחילים בסריקת אתרים, צריך להגדיר אותה כך שתכלול רק את המידע שהארגון רוצה להנגיש. מידע נוסף זמין במדריך Nutch.
מגדירים כתובות URL להתחלה.
כתובות URL להתחלה קובעות איפה סורק האינטרנט מתחיל לסרוק את התוכן שלכם. הסורק צריך להיות מסוגל להגיע לכל התוכן שרוצים לכלול על ידי מעקב אחרי הקישורים.
כדי להגדיר כתובות URL להתחלה:
- עוברים לספריית ההתקנה של Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
- יוצרים ספרייה לכתובות URL:
$ mkdir urls
- יוצרים קובץ בשם
seed.txtומוסיפים רשימה של כתובות URL, אחת בכל שורה.
- עוברים לספריית ההתקנה של Nutch:
הגדרת כללים למעקב ולביטול מעקב.
כללים לגבי כתובות URL קובעים אילו כתובות URL יתווספו לאינדקס על ידי הסורק. כללי do-not-follow מחריגים כתובות URL מסריקה.
כדי להגדיר את הכללים האלה:
- עוברים לספריית ההתקנה של Nutch.
- עריכה של
conf/regex-urlfilter.txt:$ nano conf/regex-urlfilter.txt
מזינים ביטויים רגולריים עם הקידומת '+' או '-':
# skip file extensions -\.(gif|GIF|jpg|JPG|png|PNG|ico) # skip protocols (file: ftp: and mailto:) -^(file|ftp|mailto): # allow urls starting with https://support.google.com/gsa/ +^https://support.google.com/gsa/ # accept anything else #+.
עורכים את סקריפט הסריקה.
אם הפרמטר
gcs.uploadFormatחסר או מוגדר כ-raw, צריך להוסיף ארגומנטים של-addBinaryContent -base64לפקודהnutch index. הארגומנטים האלה אומרים למודול Nutch Indexer לכלול תוכן בינארי ב-Base64.- פותחים את הסקריפט
crawlב-apache-nutch-1.15/bin. מוסיפים את האפשרויות כמו בדוגמה הזו:
if $INDEXFLAG; then echo "Indexing $SEGMENT to index" __bin_nutch index $JAVA_PROPERTIES "$CRAWL_PATH"/crawldb -addBinaryContent -base64 -linkdb "$CRAWL_PATH"/linkdb "$CRAWL_PATH"/segments/$SEGMENT echo "Cleaning up index if possible" __bin_nutch clean $JAVA_PROPERTIES "$CRAWL_PATH"/crawldb else echo "Skipping indexing ..."
- פותחים את הסקריפט
שלב 5: מתחילים סריקת אינטרנט והעלאת תוכן
אחרי שמגדירים את פלאגין יצירת האינדקס, אפשר להריץ אותו במצב מקומי. משתמשים בסקריפטים מ-./bin כדי להריץ משימת סריקה.
בדוגמה הבאה נניח שהרכיבים נמצאים בספרייה המקומית. מריצים את Nutch מהספרייה apache-nutch-1.15:
$ bin/crawl -i -s urls/ crawl-test/ 5
יומני הסריקה זמינים בטרמינל או בספרייה logs/. כדי להפנות את פלט הרישום, עורכים את conf/log4j.properties.