คุณตั้งค่า Google Cloud Search เพื่อแสดงเนื้อหาเว็บต่อผู้ใช้ได้โดยการติดตั้งใช้งานปลั๊กอินเครื่องจัดทำดัชนีของ Google Cloud Search สำหรับ Apache Nutch ซึ่งเป็นโปรแกรมตระเวนเว็บแบบโอเพนซอร์ส
เมื่อเริ่มการ Crawl เว็บ Apache Nutch จะทำการ Crawl เว็บและใช้ปลั๊กอิน Indexer เพื่ออัปโหลดเนื้อหาเอกสารเวอร์ชันไบนารี (หรือข้อความ) ต้นฉบับไปยัง Google Cloud Search Indexing API Indexing API จะจัดทำดัชนีเนื้อหาและแสดงผลการค้นหาต่อผู้ใช้
สิ่งสำคัญที่ต้องคำนึงถึง
ข้อกำหนดของระบบ
| ข้อกำหนดของระบบ | |
|---|---|
| ระบบปฏิบัติการ | Linux เท่านั้น 
 | 
| ซอฟต์แวร์ | 
 | 
| ประเภทเอกสารของ Apache Tika | รูปแบบเอกสารที่รองรับใน Apache Tika 1.18 | 
ติดตั้งใช้งานปลั๊กอินเครื่องมือจัดทำดัชนี
ขั้นตอนต่อไปนี้อธิบายวิธีติดตั้งปลั๊กอินเครื่องมือจัดทำดัชนีและกำหนดค่าคอมโพเนนต์เพื่อทำการ Crawl URL ที่ระบุและแสดงผลลัพธ์ไปยัง Cloud Search
ข้อกำหนดเบื้องต้น
ก่อนที่จะติดตั้งใช้งานปลั๊กอินเครื่องจัดทำดัชนี Apache Nutch ของ Cloud Search ให้รวบรวมข้อมูลที่จำเป็นต่อการเชื่อมต่อ 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-configuration.properties
ไฟล์การกำหนดค่าต้องระบุพารามิเตอร์ต่อไปนี้ ซึ่งจำเป็นต่อการเข้าถึงแหล่งข้อมูล Google Cloud Search
| การตั้งค่า | พารามิเตอร์ | 
| รหัสแหล่งข้อมูล | api.sourceId = 1234567890abcdefต้องระบุ รหัสแหล่งข้อมูล Google Cloud Search ที่ผู้ดูแลระบบ Google Workspace ตั้งค่าไว้สำหรับปลั๊กอินเครื่องมือจัดทำดัชนี | 
| บัญชีบริการ | api.serviceAccountPrivateKeyFile = ./PrivateKey.jsonต้องระบุ ไฟล์คีย์บัญชีบริการของ Google Cloud Search ที่ผู้ดูแลระบบ Google Workspace สร้างขึ้นเพื่อการเข้าถึงปลั๊กอิน Indexer | 
ตัวอย่างต่อไปนี้แสดงไฟล์การกำหนดค่าตัวอย่างที่มีพารามิเตอร์ที่จำเป็น
#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#
นอกจากนี้ ไฟล์การกำหนดค่ายังมีพารามิเตอร์อื่นๆ ที่ควบคุมลักษณะการทำงานของปลั๊กอิน Indexer ได้ด้วย คุณกำหนดค่าวิธีที่ปลั๊กอิน
พุชข้อมูลไปยัง Cloud Search API,  defaultAcl.* และ batch.* ได้ นอกจากนี้ คุณยังกำหนดค่าวิธีที่ปลั๊กอิน Indexer จะป้อนข้อมูลเมตาและข้อมูลที่มีโครงสร้างได้ด้วย
ดูคำอธิบายพารามิเตอร์เหล่านี้ได้ที่ พารามิเตอร์เครื่องมือเชื่อมต่อที่ 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- ไม่บังคับ รายการแท็กที่คั่นด้วยคอมมาซึ่งแมปกับพร็อพเพอร์ตี้ในสคีมาของแหล่งข้อมูลที่เกี่ยวข้อง ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีตั้งค่า 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- ไม่บังคับ รูปแบบที่ปลั๊กอิน Indexer จะพุชเนื้อหาเอกสารไปยัง Google Cloud Search Indexer API ค่าที่ใช้ได้มีดังนี้ - raw: ปลั๊กอินเครื่องจัดทำดัชนีจะพุชเนื้อหาเอกสารต้นฉบับที่ยังไม่ได้แปลง
- text: ปลั๊กอินเครื่องมือจัดทำดัชนีจะพุชเนื้อหาที่เป็นข้อความที่แยกออกมา ค่าเริ่มต้นคือ- raw
 
ขั้นตอนที่ 4: กำหนดค่าการ Crawl เว็บ
ก่อนเริ่มการ Crawl เว็บ ให้กำหนดค่าการ Crawl เพื่อให้รวมเฉพาะข้อมูลที่องค์กรต้องการให้แสดงในผลการค้นหา ส่วนนี้จะให้ภาพรวม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีตั้งค่าการ Crawl เว็บ โปรดไปที่บทแนะนำ Nutch
- ตั้งค่า URL เริ่มต้น - URL เริ่มต้นจะควบคุมตำแหน่งที่โปรแกรม Crawl เว็บ Apache Nutch เริ่มทำการ Crawl เนื้อหาของคุณ URL เริ่มต้นควรช่วยให้ Web Crawler เข้าถึงเนื้อหาทั้งหมดที่คุณต้องการ รวมในการ Crawl ที่เฉพาะเจาะจงได้โดยการติดตามลิงก์ ต้องระบุ URL เริ่มต้น - วิธีตั้งค่า URL เริ่มต้น - เปลี่ยนไดเรกทอรีที่ใช้งานอยู่เป็นไดเรกทอรีการติดตั้ง Nutch โดยใช้คำสั่งต่อไปนี้ - $ cd ~/nutch/apache-nutch-X.Y/ 
- สร้างไดเรกทอรีสำหรับ URL โดยใช้คำสั่งต่อไปนี้ - $ mkdir urls 
- สร้างไฟล์ชื่อ - seed.txtแล้วระบุ URL ในไฟล์โดยให้มี 1 URL ต่อบรรทัด
 
- ตั้งค่ากฎการติดตามและกฎห้ามติดตาม - กฎ URL จะควบคุมว่า URL ใดจะได้รับการ Crawl และรวมไว้ในดัชนี Google Cloud Search Web Crawler จะตรวจสอบ URL เทียบกับ กฎ URL ที่ติดตาม ระบบจะทำการ Crawl และจัดทำดัชนีเฉพาะ URL ที่ตรงกับกฎเหล่านี้เท่านั้น - กฎห้ามติดตามจะยกเว้น URL ไม่ให้มีการ Crawl และรวมไว้ในดัชนีของ Google Cloud Search หาก URL มีรูปแบบห้าม Crawl เว็บ Crawler จะไม่ทำการ Crawl - วิธีตั้งค่ากฎ URL แบบติดตามและไม่ติดตาม - เปลี่ยนไดเรกทอรีที่ใช้งานอยู่เป็นไดเรกทอรีการติดตั้ง Nutch โดยใช้คำสั่งต่อไปนี้ - $ cd ~/nutch/apache-nutch-X.Y/ 
- แก้ไข - conf/regex-urlfilter.txtเพื่อเปลี่ยนกฎการติดตาม/ไม่ติดตาม \- $ nano conf/regex-urlfilter.txt 
- ป้อนนิพจน์ทั่วไปที่มีคำนำหน้า "+" หรือ "-" เพื่อทำตามรูปแบบและส่วนขยายของ URL ที่มี / do-not-follow ดังที่แสดงใน ตัวอย่างต่อไปนี้ อนุญาตให้ใช้การแสดงออกที่เปิดกว้าง - # 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) #+.
 
- แก้ไขสคริปต์การ Crawl - หากไม่มีพารามิเตอร์ - gcs.uploadFormatหรือตั้งค่าเป็น "raw" คุณต้องเพิ่มอาร์กิวเมนต์ "- -addBinaryContent -base64" เพื่อส่งไปยังคำสั่ง- nutch indexอาร์กิวเมนต์เหล่านี้จะบอกให้โมดูล Nutch Indexer รวมเนื้อหาไบนารี ใน Base64 เมื่อเรียกใช้ปลั๊กอิน Indexer สคริปต์ ./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: เริ่มการ Crawl เว็บและการอัปโหลดเนื้อหา
หลังจากติดตั้งและตั้งค่าปลั๊กอินเครื่องจัดทำดัชนีแล้ว คุณจะเรียกใช้ปลั๊กอินนี้ได้
ด้วยตัวเองในโหมดภายใน ใช้สคริปต์จาก ./bin เพื่อเรียกใช้ชิ้นงานการ Crawl หรือ
คำสั่ง Nutch แต่ละรายการ
ตัวอย่างต่อไปนี้ถือว่าคอมโพเนนต์ที่จำเป็นอยู่ในไดเรกทอรี
ภายใน เรียกใช้ Nutch ด้วยคำสั่งต่อไปนี้จากไดเรกทอรี apache-nutch-1.15
$ bin/crawl -i -s urls/ crawl-test/ 5
บันทึกการ Crawl จะอยู่ในเอาต์พุตมาตรฐาน (เทอร์มินัล) หรือในlogs/ไดเรกทอรี หากต้องการ
เปลี่ยนเส้นทางเอาต์พุตการบันทึกหรือบันทึกแบบละเอียดเพิ่มเติม ให้แก้ไข
conf/log4j.properties