คุณสามารถตั้งค่า Google Cloud Search ให้แสดงเนื้อหาเว็บแก่ผู้ใช้ได้โดย การติดตั้งใช้งานปลั๊กอินตัวจัดทำดัชนีของ Cloud Search สำหรับ Apache Nutch ซึ่งเป็น Web Crawler แบบโอเพนซอร์ส
เมื่อคุณเริ่มการ Crawl เว็บ Apache Nutch จะ Crawl เว็บและใช้ปลั๊กอินตัวจัดทำดัชนีเพื่ออัปโหลดเนื้อหาเอกสารเวอร์ชันไบนารี (หรือข้อความ) ต้นฉบับไปยัง Google Cloud Search API Cloud Search API จะจัดทำดัชนีเนื้อหาและแสดงผลการค้นหาแก่ผู้ใช้
สิ่งสำคัญที่ต้องคำนึงถึง
โปรดคำนึงถึงข้อควรพิจารณาต่อไปนี้ก่อนติดตั้งใช้งานปลั๊กอินตัวจัดทำดัชนี
ข้อกำหนดของระบบ
| ข้อกำหนดของระบบ | |
|---|---|
| ระบบปฏิบัติการ | Linux เท่านั้น:
|
| ซอฟต์แวร์ |
|
| ประเภทเอกสารของ Apache Tika | รูปแบบเอกสารที่ Apache Tika 1.18 รองรับ |
ติดตั้งใช้งานปลั๊กอินตัวจัดทำดัชนี
ขั้นตอนเหล่านี้อธิบายวิธีติดตั้งปลั๊กอินตัวจัดทำดัชนีและกำหนดค่าคอมโพเนนต์ของปลั๊กอินเพื่อ Crawl 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 และวิธีที่ปลั๊กอินป้อนข้อมูลเมตาและ Structured Data ดูคำอธิบายพารามิเตอร์เหล่านี้ได้ที่ ดู พารามิเตอร์ตัวเชื่อมต่อที่ 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: กำหนดค่าการ Crawl เว็บ
ก่อนเริ่มการ Crawl เว็บ ให้กำหนดค่าการ Crawl เพื่อให้รวมเฉพาะข้อมูลที่องค์กรต้องการเผยแพร่ ดูข้อมูลเพิ่มเติมได้ที่ บทแนะนำของ Nutch
ตั้งค่า URL เริ่มต้น
URL เริ่มต้นจะควบคุมตำแหน่งที่ Web Crawler จะเริ่มทำการ Crawl เนื้อหา โปรแกรมรวบรวมข้อมูลต้องเข้าถึงเนื้อหาทั้งหมดที่คุณต้องการรวมได้โดยทำตามลิงก์
วิธีตั้งค่า URL เริ่มต้น
- เปลี่ยนเป็นไดเรกทอรีการติดตั้ง Nutch โดยใช้คำสั่งต่อไปนี้
$ cd ~/nutch/apache-nutch-X.Y/
- สร้างไดเรกทอรีสำหรับ URL โดยใช้คำสั่งต่อไปนี้
$ mkdir urls
- สร้างไฟล์ชื่อ
seed.txtและแสดง URL 1 รายการต่อบรรทัด
- เปลี่ยนเป็นไดเรกทอรีการติดตั้ง Nutch โดยใช้คำสั่งต่อไปนี้
ตั้งค่ากฎการติดตามและกฎการไม่ติดตาม
กฎการติดตาม URL จะควบคุม URL ที่โปรแกรมรวบรวมข้อมูลจัดทำดัชนี กฎการไม่ติดตามจะยกเว้นไม่ให้มีการ Crawl 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 #+.
แก้ไขสคริปต์การ Crawl
หากพารามิเตอร์
gcs.uploadFormatหายไปหรือตั้งค่าเป็น "raw" คุณต้องเพิ่มอาร์กิวเมนต์-addBinaryContent -base64ลงในคำสั่งnutch indexอาร์กิวเมนต์เหล่านี้จะบอกโมดูลตัวจัดทำดัชนีของ Nutch ให้รวมเนื้อหาไบนารีใน 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: เริ่มการ Crawl เว็บและการอัปโหลดเนื้อหา
หลังจากตั้งค่าปลั๊กอินตัวจัดทำดัชนีแล้ว คุณจะดำเนินการในโหมดภายในเครื่องได้ ใช้สคริปต์จาก ./bin เพื่อเรียกใช้งานการ Crawl
ตัวอย่างต่อไปนี้จะถือว่าคอมโพเนนต์อยู่ในไดเรกทอรีภายในเครื่อง เรียกใช้ Nutch จากไดเรกทอรี apache-nutch-1.15 โดยใช้คำสั่งต่อไปนี้
$ bin/crawl -i -s urls/ crawl-test/ 5
บันทึกการ Crawl จะอยู่ในเทอร์มินัลหรือไดเรกทอรี logs/ หากต้องการเปลี่ยนเส้นทางเอาต์พุตการบันทึก ให้แก้ไข conf/log4j.properties