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