אתם יכולים להגדיר את Google Cloud Search כך שיציג תוכן מהאינטרנט למשתמשים באמצעות פריסה של הפלאגין ליצירת אינדקס של Google Cloud Search עבור Apache Nutch, סורק אינטרנט בקוד פתוח.
כשאתם מתחילים את סריקת האינטרנט, Apache Nutch סורק את האינטרנט ומשתמש בפלאגין של Indexer כדי להעלות גרסאות בינאריות (או טקסט) מקוריות של תוכן מסמכים אל ממשק ה-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
שכפול המאגר של יישומי הפלאגין של indexer מ-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-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
#
קובץ התצורה יכול להכיל גם פרמטרים אחרים השולטים בהתנהגות הפלאגין של ה-Indexer. אפשר להגדיר איך הפלאגין
ידחוף נתונים ל-Cloud Search API, ל-defaultAcl.*
ול-batch.*
. אתם יכולים גם להגדיר את האופן שבו הפלאגין ליצירת אינדקס מאכלס מטא-נתונים ונתונים מובְנים.
לתיאורים של הפרמטרים האלה, קראו את המאמר פרמטרים של מחבר שסופק על ידי Google.
שלב 3: הגדרת Apache Nutch
פותחים את
conf/nutch-site.xml
ומוסיפים את הפרמטרים הבאים:ההגדרה פרמטר הפלאגין כולל plugin.includes = text
חובה. רשימת יישומי פלאגין לשימוש. היא צריכה לכלול לפחות:
- בסיסי-אינדקס
- הוספה לאינדקס-עוד
- 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
: הפלאגין ליצירת אינדקס דוחף תוכן של מסמך מקורי שלא הומר.text
: הפלאגין של הכלי לאינדקס דוחף תוכן טקסטואלי שחולץ. ערך ברירת המחדל הואraw
.
שלב 4: הגדרה של סריקת אינטרנט
לפני שתתחילו סריקת אינטרנט, הגדירו את הסריקה כך שהיא תכלול רק מידע שהארגון שלכם רוצה להציג בתוצאות החיפוש. בקטע הזה תמצאו סקירה כללית. למידע נוסף על ההגדרה של סריקת אינטרנט, קראו את המדריך ל-Nutch.
הגדרת כתובות אתרים להתחלה.
כתובות ה-URL להתחלה קובעות איפה סורק האינטרנט Apache Nutch יתחיל לסרוק את התוכן. כתובות ה-URL להתחלה צריכות לאפשר לסורק האינטרנט להגיע לכל התוכן שרוצים לכלול בסריקה מסוימת, באמצעות לחיצה על הקישורים. חובה להזין כתובות URL להתחלה.
כדי להגדיר כתובות אתרים להתחלה:
שנה את ספריית העבודה לספריית ההתקנה של nutch:
$ 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 למעקב ולמניעת מעקב:
שנה את ספריית העבודה לספריית ההתקנה של 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
. הארגומנטים האלה מורים למודול 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: התחלה של סריקת אינטרנט והעלאת תוכן
אחרי שמתקינים ומגדירים את הפלאגין של Indexer, אפשר להריץ אותו בעצמו במצב מקומי. משתמשים בסקריפטים מ-./bin
כדי להפעיל משימת סריקה או
פקודות Nutch נפרדות.
בדוגמה הבאה ההנחה היא שהרכיבים הנדרשים ממוקמים בספרייה המקומית. מריצים את Nutch באמצעות הפקודה הבאה מהספרייה apache-nutch-1.15
:
$ bin/crawl -i -s urls/ crawl-test/ 5
יומני הסריקה זמינים בפלט ה-SD (טרמינל) או בספרייה logs/
. כדי
לכוון את פלט הרישום ביומן או כדי לבצע רישום מפורט יותר ביומן, צריך לערוך את
conf/log4j.properties
.