می توانید Google Cloud Search را برای ارائه محتوای وب به کاربران خود با استقرار افزونه نمایه ساز Google Cloud Search برای Apache Nutch ، یک خزنده وب منبع باز، راه اندازی کنید.
وقتی خزیدن وب را شروع میکنید، Apache Nutch وب را میخزد و از افزونه نمایهساز برای آپلود نسخههای باینری (یا متنی) اصلی محتوای سند در API فهرستسازی Google Cloud Search استفاده میکند. API نمایه سازی محتوا را نمایه می کند و نتایج را در اختیار کاربران شما قرار می دهد.
ملاحظات مهم
سیستم مورد نیاز
سیستم مورد نیاز | |
---|---|
سیستم عامل | فقط لینوکس:
|
نرم افزار |
|
انواع سند آپاچی تیکا | Apache Tika 1.18 از فرمت های سند پشتیبانی می کند |
پلاگین نمایه ساز را نصب کنید
مراحل زیر نحوه نصب افزونه نمایه ساز و پیکربندی اجزای آن را برای خزیدن URL های مشخص شده و بازگرداندن نتایج به جستجوی ابری توضیح می دهد.
پیش نیازها
قبل از استقرار افزونه نمایه ساز 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 install plugins (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
#
فایل پیکربندی همچنین میتواند شامل پارامترهای دیگری باشد که رفتار افزونه نمایه ساز را کنترل میکند. میتوانید پیکربندی کنید که چگونه افزونه دادهها را به 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-parse بروید.
مثال زیر اصلاحات لازم در
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
اختیاری. قالبی که در آن افزونه نمایه ساز محتوای سند را به API نمایه ساز Google Cloud Search هدایت می کند. مقادیر معتبر عبارتند از:
-
raw
: افزونه نمایه ساز محتوای سند اصلی و تبدیل نشده را فشار می دهد. -
text
: افزونه نمایه ساز محتوای متنی استخراج شده را فشار می دهد. مقدار پیش فرضraw
است.
-
مرحله 4: خزیدن وب را پیکربندی کنید
قبل از شروع خزیدن وب، خزیدن را طوری پیکربندی کنید که فقط شامل اطلاعاتی باشد که سازمان شما می خواهد در نتایج جستجو در دسترس قرار دهد. این بخش یک نمای کلی ارائه می دهد. برای اطلاعات بیشتر در مورد نحوه راه اندازی خزیدن وب، به آموزش Nutch بروید.
URL های شروع را تنظیم کنید.
نشانیهای اینترنتی استارت کنترل میکنند که خزنده وب Apache Nutch کجا شروع به خزیدن محتوای شما میکند. URL های شروع باید به خزنده وب اجازه دهند تا با دنبال کردن پیوندها به تمام محتوایی که می خواهید در یک خزیدن خاص بگنجانید دسترسی پیدا کند. URL های شروع مورد نیاز است.
برای تنظیم URL های شروع:
دایرکتوری کاری را به دایرکتوری نصب nutch تغییر دهید:
$ cd ~/nutch/apache-nutch-X.Y/
یک دایرکتوری برای آدرس ها ایجاد کنید:
$ mkdir urls
فایلی به نام
seed.txt
ایجاد کنید و URL ها را در آن با 1 URL در هر خط فهرست کنید.
قوانین پیگیری و رعایت نکردن را تنظیم کنید.
قوانین URL را دنبال کنید، نشانیهای وب خزیده شده و در فهرست جستجوی Google Cloud گنجانده میشود. خزنده وب URL ها را بر اساس قوانین پیروی از URL بررسی می کند. فقط URL هایی که با این قوانین مطابقت دارند خزیده و نمایه می شوند.
قوانین پیروی نکردن نشانیهای اینترنتی را از خزیدن و گنجاندن آن در فهرست جستجوی ابری Google محروم میکند. اگر یک 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: خزیدن وب و آپلود محتوا را شروع کنید
پس از نصب و راه اندازی افزونه نمایه ساز، می توانید آن را به تنهایی در حالت محلی اجرا کنید. از اسکریپت های ./bin
برای اجرای یک کار خزنده یا دستورات Nutch فردی استفاده کنید.
مثال زیر فرض می کند که اجزای مورد نیاز در فهرست محلی قرار دارند. Nutch را با دستور زیر از پوشه apache-nutch-1.15
اجرا کنید:
$ bin/crawl -i -s urls/ crawl-test/ 5
گزارشهای Crawl در خروجی std (ترمینال) یا در دایرکتوری logs/
در دسترس هستند. برای هدایت خروجی ورود به سیستم یا برای ثبت دقیق تر، conf/log4j.properties
را ویرایش کنید.