คุณตั้งค่า Google Cloud Search เพื่อแสดงเนื้อหาเว็บต่อผู้ใช้ได้โดย ติดตั้งใช้งานปลั๊กอินเครื่องจัดทำดัชนีของ Cloud Search สำหรับ Apache Nutch ซึ่งเป็น Web Crawler แบบโอเพนซอร์ส
เมื่อเริ่มการ Crawl เว็บ Apache Nutch จะทำการ Crawl เว็บและใช้ปลั๊กอิน Indexer เพื่ออัปโหลดเนื้อหาเอกสารเวอร์ชันไบนารี (หรือข้อความ) ต้นฉบับไปยัง Google Cloud Search API Cloud Search API จะจัดทำดัชนีเนื้อหาและ แสดงผลลัพธ์แก่ผู้ใช้
สิ่งสำคัญที่ต้องคำนึงถึง
โปรดคำนึงถึงข้อควรพิจารณาต่อไปนี้ก่อนที่จะติดตั้งใช้งานปลั๊กอินเครื่องมือจัดทำดัชนี
ข้อกำหนดของระบบ
| ข้อกำหนดของระบบ | |
|---|---|
| ระบบปฏิบัติการ | Linux เท่านั้น
|
| ซอฟต์แวร์ |
|
| ประเภทเอกสารของ Apache Tika | รูปแบบเอกสารที่ Apache Tika 1.18 รองรับ |
ติดตั้งใช้งานปลั๊กอินเครื่องมือจัดทำดัชนี
ขั้นตอนเหล่านี้อธิบายวิธีติดตั้งปลั๊กอินเครื่องจัดทำดัชนีและกำหนดค่าคอมโพเนนต์เพื่อทำการ Crawl URL และแสดงผลลัพธ์ไปยัง Cloud Search
ข้อกำหนดเบื้องต้น
ก่อนที่จะติดตั้งใช้งานปลั๊กอิน Indexer ให้รวบรวมข้อมูลที่จำเป็นต่อการเชื่อมต่อ 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ไปยังโฟลเดอร์ Apache Nutchplugins(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 เว็บ ให้กำหนดค่าให้รวมเฉพาะข้อมูลที่องค์กรของคุณต้องการให้แสดง ดูข้อมูลเพิ่มเติมได้ที่บทแนะนำเกี่ยวกับ Nutch
ตั้งค่า URL เริ่มต้น
URL เริ่มต้นจะควบคุมตำแหน่งที่ Web Crawler เริ่มทำการ Crawl เนื้อหาของคุณ Crawler ต้องเข้าถึงเนื้อหาทั้งหมดที่คุณต้องการรวมได้โดย ทำตามลิงก์
วิธีตั้งค่า URL เริ่มต้น
- เปลี่ยนเป็นไดเรกทอรีการติดตั้ง Nutch โดยใช้คำสั่งต่อไปนี้
$ cd ~/nutch/apache-nutch-X.Y/
- สร้างไดเรกทอรีสำหรับ URL โดยใช้คำสั่งต่อไปนี้
$ mkdir urls
- สร้างไฟล์ชื่อ
seed.txtและระบุ URL บรรทัดละ 1 รายการ
- เปลี่ยนเป็นไดเรกทอรีการติดตั้ง Nutch โดยใช้คำสั่งต่อไปนี้
ตั้งค่ากฎการติดตามและไม่ติดตาม
กฎ URL ติดตามจะควบคุม URL ที่ Crawler จัดทำดัชนี กฎ nofollow จะยกเว้น URL จากการ Crawl
วิธีตั้งค่ากฎเหล่านี้
- เปลี่ยนเป็นไดเรกทอรีการติดตั้ง 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 Indexer ให้รวมเนื้อหาไบนารีใน 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