כדי להגדיר את Google Cloud Search כך שיציג תוכן מהאינטרנט למשתמשים, פורסים את הפלאגין של Google Cloud Search לאינדקס עבור Apache Nutch, סורק אינטרנט בקוד פתוח.
כשתתחילו את סריקת האינטרנט, Apache Nutch סורקת את האינטרנט ומשתמשת בפלאגין של כלי האינדקס כדי להעלות גרסאות בינאריות (או טקסט) מקוריות של תוכן מסמכים, לממשק ה-API של Google Cloud Search להוספת לאינדקס. ממשק ה-API להוספה לאינדקס מוסיף את התוכן לאינדקס ומציג את התוצאות למשתמשים שלכם.
שיקולים חשובים
דרישות מערכת
דרישות מערכת | |
---|---|
מערכת הפעלה | ב-Linux בלבד:
|
תוכנה |
|
סוגי מסמכי Apache Tika | פורמטים נתמכים של מסמכים ב-Apache Tika 1.18 |
פריסת הפלאגין של האינדקס
בשלבים הבאים מוסבר איך להתקין את הפלאגין של הכלי לאינדקס ואיך להגדיר את הרכיבים שלו כך שיסרקו את כתובות ה-URL שצוינו ויחזירו את התוצאות ל-Cloud Search.
דרישות מוקדמות
לפני שפורסים את הפלאגין של Cloud Search Apache Nutch לאינדקס, צריך לאסוף את המידע הנדרש לחיבור Google Cloud Search אל מקור הנתונים:
- מפתח פרטי של Google Workspace (שמכיל את מזהה חשבון השירות). לקבלת מידע על קבלת מפתח פרטי, אפשר לעבור אל הגדרת הגישה ל-Google 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
(שמובנה בשלב 2) לתיקייה. מעתיקים את התיקייהplugins/indexer-google-cloudsearch
לתיקייה של התקנת יישומי פלאגין ב-Apache Nutch (apache-nutch-1.15/plugins
).
שלב 2: הגדרת הפלאגין של הכלי לאינדקס
כדי להגדיר את Apache Nutch Indexer Plugin, צריך ליצור קובץ בשם plugin-configuration.properties
.
קובץ התצורה חייב לציין את הפרמטרים הבאים, שהם שנדרשים כדי לגשת למקור הנתונים של Google Cloud Search.
הגדרה | פרמטר |
מזהה של מקור נתונים | api.sourceId = 1234567890abcdef
חובה. מזהה המקור ב-Google Cloud Search שהאדמין ב-Google Workspace הגדיר לפלאגין של הכלי להוספה לאינדקס. |
חשבון שירות | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
חובה. קובץ המפתח של חשבון השירות של Google Cloud Search שהאדמין ב-Google Workspace יצר כדי לאפשר גישה לפלאגין של הכלי לאינדקס. |
בדוגמה הבאה מוצג קובץ תצורה לדוגמה עם הפרמטרים הנדרשים.
#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#
קובץ התצורה יכול להכיל גם פרמטרים אחרים ששולטים בהתנהגות הפלאגין של הכלי לאינדקס. אפשר להגדיר איך
ומעביר נתונים ל-Cloud Search API, defaultAcl.*
ו-batch.*
. אפשר גם להגדיר את האופן שבו הפלאגין של הכלי לאינדקס מאכלס מטא-נתונים ונתונים מובְנים.
תיאורים של הפרמטרים האלה מופיעים במאמר פרמטרים של מחבר ש-Google מספקת.
שלב 3: הגדרת Apache Nutch
פותחים את
conf/nutch-site.xml
ומוסיפים את הפרמטרים הבאים:הגדרה פרמטר יישומי הפלאגין כוללים plugin.includes = text
חובה. רשימת יישומי פלאגין לשימוש. הפירוט חייב לכלול לפחות:
- index-basic
- להוסיף לאינדקס
- 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>
התפקיד <author> מכיל את הפרמטרים הבאים:
הגדרה פרמטר נתיב לקובץ התצורה של Google Cloud Search gcs.config.file = path
חובה. הנתיב המלא (המוחלט) לקובץ התצורה של Google Cloud Search.
פורמט העלאה gcs.uploadFormat = text
זה שינוי אופציונלי. הפורמט שבו הפלאגין ליצירת אינדקס דוחף תוכן מסמכים ל-Google Cloud Search Indexer API. הערכים החוקיים כוללים:
raw
: הפלאגין של הכלי לאינדקס דוחף תוכן מקורי של מסמך שלא עבר המרה.text
: הפלאגין של הכלי לאינדקס דוחף תוכן טקסטואלי שחולץ. ערך ברירת המחדל הואraw
.
שלב 4: הגדרה של סריקת האינטרנט
לפני שמתחילים סריקת אינטרנט, צריך להגדיר את הסריקה כך שהיא תכלול רק מידע שהארגון שלכם רוצה להציג בחיפוש. תוצאות. בקטע הזה מוצגת סקירה כללית: לקבלת מידע נוסף על אופן ההגדרה של סריקת אינטרנט, עבור אל מדריך Nutch
הגדרת כתובות URL להתחלת ההגדרה.
כתובות אתר להתחלה קובעות היכן סורק האינטרנט Apache Nutch מתחיל לסרוק תוכן. כתובות ה-URL להתחלה צריכות לאפשר לסורק האינטרנט להגיע לכל התוכן שברצונך לכלול בסריקה מסוימת על ידי לחיצה על הקישורים. כתובות URL להתחלה הן חובה.
כדי להגדיר כתובות URL להתחלה:
משנים את ספריית העבודה לספריית ההתקנה של הנוצצים:
$ cd ~/nutch/apache-nutch-X.Y/
יצירת ספרייה לכתובות URL:
$ mkdir urls
יוצרים קובץ בשם
seed.txt
ומציינים בו את כתובות ה-URL, עם כתובת URL אחת בכל שורה.
להגדיר כללי מעקב וכללי 'לא לעקוב'.
ציות לכללים של כתובות URL קובע אילו כתובות URL ייסרקו וייכללו באינדקס של Google Cloud Search. סורק האינטרנט בודק כתובות URL מול לציית לכללים של כתובות URL. רק כתובות URL שתואמות לכללים האלה נסרקות ונוספו לאינדקס.
כללי ה'לא-לביצוע' מחריגים כתובות URL מסריקה שלהן ונכללים באינדקס של Google Cloud Search. אם כתובת URL מכילה דפוס לא לסריקה, סורק האינטרנט לא סורק אותו.
כדי להגדיר כללי כתובת URL למעקב ולא לפעול לפיהם:
משנים את ספריית העבודה לספריית ההתקנה של הנוצצים:
$ 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
חסר או מוגדר כ-"גולמי", עליך להוסיף-addBinaryContent -base64
ארגומנטים שצריך להעביר אלnutch index
הפקודה. הארגומנטים האלה מורים למודול Nutch Indexer לכלול תוכן בינארי ב-Base64 כאשר הוא מפעיל את הפלאגין של האינדקס. בסקריפט ./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: מתחילים סריקת אינטרנט והעלאת תוכן
אחרי שמתקינים ומגדירים את הפלאגין של האינדקס, אפשר להפעיל אותו
במצב מקומי. להשתמש בסקריפטים מ-./bin
כדי לבצע משימת סריקה, או
פקודות Nutch נפרדות.
בדוגמה הבאה ההנחה היא שהרכיבים הנדרשים ממוקמים
מריצים את Nutch באמצעות הפקודה הבאה מהספרייה apache-nutch-1.15
:
$ bin/crawl -i -s urls/ crawl-test/ 5
יומני סריקה זמינים בפלט ה-std (טרמינל) או בספרייה logs/
. שפת תרגום
לכוון את פלט הרישום ביומן או להוסיף רישום מפורט יותר ביומן, עריכה
conf/log4j.properties