כדי להגדיר את Google Cloud Search להצגת תוכן אינטרנט למשתמשים, אפשר לפרוס את הפלאגין של האינדקס של Google Cloud Search ל- Apache Nutch, סורק אינטרנט בקוד פתוח.
כשמתחילים את הסריקה של האינטרנט, Apache Nutch סורק את האינטרנט ומשתמש בפלאגין להוספת תוכן לאינדקס כדי להעלות גרסאות בינאריות (או טקסט) מקוריות של תוכן המסמכים ל-Google Cloud Search indexing API. ה-Indexing API מדרג את התוכן ומציג את התוצאות למשתמשים.
שיקולים חשובים
דרישות מערכת
דרישות מערכת | |
---|---|
מערכת הפעלה | ב-Linux בלבד:
|
תוכנה |
|
סוגי מסמכים ב-Apache Tika | פורמטים נתמכים של מסמכים ב-Apache Tika 1.18 |
פריסה של פלאגין ה-Indexer
בשלבים הבאים מוסבר איך להתקין את הפלאגין של הכלי ליצירת אינדקסים ולהגדיר את הרכיבים שלו כדי לסרוק את כתובות ה-URL שצוינו ולהחזיר את התוצאות אל Cloud Search.
דרישות מוקדמות
לפני שפורסים את הפלאגין של ה-indexer של Apache Nutch ב-Cloud Search, צריך לאסוף את המידע הנדרש כדי לחבר את Google Cloud Search למקור הנתונים:
- מפתח פרטי של Google Workspace (שמכיל את מזהה חשבון השירות). למידע על קבלת מפתח פרטי, אפשר לעיין במאמר הגדרת גישה ל-Google Cloud Search API.
- מזהה מקור הנתונים ב-Google Workspace. במאמר הוספת מקור נתונים לחיפוש מוסבר איך לקבל מזהה של מקור נתונים.
שלב 1: פיתוח והתקנה של תוכנת הפלאגין ו-Apache Nutch
משכפלים את מאגר הפלאגין של ה-indexer מ-GitHub.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
בודקים את הגרסה הרצויה של פלאגין ה-Indexer:
$ git checkout tags/v1-0.0.5
פיתוח הפלאגין של ה-Indexer.
$ mvn package
כדי לדלג על הבדיקות בזמן היצירה של הפלאגין של ה-Indexer, משתמשים ב-
mvn package -DskipTests
.מורידים את Apache Nutch 1.15 ופועלים לפי הוראות ההתקנה של Apache Nutch.
לחלץ את
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip
(שנוצר בשלב 2) לתיקייה. מעתיקים את התיקייהplugins/indexer-google-cloudsearch
לתיקיית הפלאגינים להתקנה של Apache Nutch (apache-nutch-1.15/plugins
).
שלב 2: מגדירים את הפלאגין של הכלי להוספת מסמכים לאינדקס
כדי להגדיר את הפלאגין Apache Nutch Indexer, יוצרים קובץ בשם plugin-configuration.properties
.
קובץ התצורה חייב לציין את הפרמטרים הבאים, שנדרשים כדי לגשת למקור הנתונים של חיפוש Google Cloud.
הגדרה | פרמטר |
מזהה מקור הנתונים | api.sourceId = 1234567890abcdef
חובה. מזהה המקור של Google Cloud Search שהאדמין של Google Workspace הגדיר לתוסף לאינדקס. |
חשבון שירות | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
חובה. קובץ המפתח של חשבון השירות של חיפוש Google Cloud, שנוצר על ידי האדמין של Google Workspace לצורך גישה לתוסף לאינדקס. |
בדוגמה הבאה מוצג קובץ תצורה לדוגמה עם הפרמטרים הנדרשים.
#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#
קובץ התצורה יכול להכיל גם פרמטרים אחרים ששולטים בהתנהגות של הפלאגין של ה-indexer. אפשר להגדיר את האופן שבו הפלאגין דוחף נתונים ל-Cloud Search API, ל-defaultAcl.*
ול-batch.*
. אפשר גם להגדיר את האופן שבו הפלאגין של ה-Indexer מאכלס מטא-נתונים ונתונים מובְנים.
לתיאור הפרמטרים האלה, אפשר לעיין במאמר פרמטרים של מחברים שסופקו על ידי 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
זה שינוי אופציונלי. רשימת תגים מופרדים בפסיקים שממופים למאפיינים בסכימה של מקור הנתונים התואם. מידע נוסף על הגדרת Apache Nutch למטא תגים זמין במאמר ניתוח מטא תגים ב-Nutch.
בדוגמה הבאה מוצג השינוי הנדרש ב-
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> מכיל את הפרמטרים הבאים:
הגדרה פרמטר הנתיב לקובץ התצורה של Google Cloud Search gcs.config.file = path
חובה. הנתיב המלא (המוחלט) לקובץ התצורה של Google Cloud Search.
פורמט ההעלאה gcs.uploadFormat = text
זה שינוי אופציונלי. הפורמט שבו הפלאגין של הכלי להוספה לאינדקס דוחף את תוכן המסמך ל-Google Cloud Search indexer API. הערכים החוקיים כוללים:
raw
: הפלאגין של ה-Indexer דוחף תוכן מסמך מקורי שלא הומר.text
: הפלאגין של ה-indexer דוחף תוכן טקסטואלי שחולץ. ערך ברירת המחדל הואraw
.
שלב 4: הגדרת סריקה של האינטרנט
לפני שמתחילים סריקה של האינטרנט, צריך להגדיר את הסריקה כך שתכלול רק מידע שהארגון רוצה להפוך לזמין בתוצאות החיפוש. בקטע הזה נספק סקירה כללית. מידע נוסף על הגדרת סריקה של האינטרנט זמין במדריך Nutch.
מגדירים כתובות URL להתחלה.
כתובות ה-URL להתחלה קובעות איפה הסורק של Apache Nutch יתחיל לסרוק את התוכן שלכם. כתובות ה-URL ההתחלתיות אמורות לאפשר לסורק האינטרנט להגיע לכל התוכן שרוצים לכלול בסריקה מסוימת, על ידי מעקב אחר הקישורים. חובה לציין כתובות URL להתחלה.
כדי להגדיר כתובות URL להתחלה:
משנים את ספריית העבודה לספריית ההתקנה של nutch:
$ cd ~/nutch/apache-nutch-X.Y/
יוצרים ספרייה לכתובות URL:
$ mkdir urls
יוצרים קובץ בשם
seed.txt
ומפרטים בו כתובות URL, כתובת אחת בכל שורה.
מגדירים כללים של מעקב ושל אי-מעקב.
הכללים לכתובות URL קובעים אילו כתובות URL ייסרקו ויכללו באינדקס של Google Cloud Search. הסורק של האינטרנט בודק את כתובות ה-URL בהתאם לכללי כתובות ה-URL ל-follow. רק כתובות URL שתואמות לכללים האלה נסרקות ומתווספות לאינדקס.
כללי 'אין לעקוב' מונעים סריקה של כתובות URL והכללתן באינדקס של Google Cloud Search. אם כתובת URL מכילה דפוס של 'אין לסרוק', הסריקה של הרובוט לא תתבצע.
כדי להגדיר כללים של מעקב אחרי כתובות URL וכתובות URL ללא מעקב:
משנים את ספריית העבודה לספריית ההתקנה של nutch:
$ cd ~/nutch/apache-nutch-X.Y/
עורכים את
conf/regex-urlfilter.txt
כדי לשנות את כללי המעקב/הפסקת המעקב: \$ nano conf/regex-urlfilter.txt
מזינים ביטויים רגולריים עם קידומת '+' או '-' כדי לפעול לפי תבניות וכתובות URL ספציפיות או לא לפעול לפיהן, כפי שמתואר בדוגמאות הבאות. מותר להשתמש בביטויים פתוחים.
# 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 # (commented out due to the single url-prefix allowed above) #+.
עורכים את סקריפט הסריקה.
אם הפרמטר
gcs.uploadFormat
חסר או מוגדר לערך 'raw', צריך להוסיף ארגומנטים מסוג-addBinaryContent -base64
כדי להעביר לפקודהnutch index
. הארגומנטים האלה מורים למודול ה-Indexer של Nutch לכלול תוכן בינארי ב-Base64 כשהוא מפעיל את הפלאגין של ה-Indexer. כברירת מחדל, הארגומנטים האלה לא מופיעים בסקריפט ./bin/crawl.- פותחים את הסקריפט
crawl
ב-apache-nutch-1.15/bin
. מוסיפים את האפשרויות של
-addBinaryContent -base64
לסקריפט, כמו בדוגמה הבאה: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: מתחילים סריקה של האינטרנט והעלאת תוכן
אחרי שמתקינים ומגדירים את הפלאגין של ה-Indexer, אפשר להריץ אותו בעצמו במצב מקומי. משתמשים בסקריפטים מ-./bin
כדי להריץ משימת סריקה או פקודות Nutch ספציפיות.
בדוגמה הבאה נניח שהרכיבים הנדרשים נמצאים בספרייה המקומית. מריצים את Nutch באמצעות הפקודה הבאה מהספרייה apache-nutch-1.15
:
$ bin/crawl -i -s urls/ crawl-test/ 5
יומני הסריקה זמינים בפלט std (טרמינל) או בספרייה logs/
. כדי לכוון את הפלט של הרישום ביומן או כדי לקבל רישום מפורט יותר ביומן, עורכים את הקובץ conf/log4j.properties
.