ทำให้ปลั๊กอิน Apache Nutch Indexer ใช้งานได้

คุณตั้งค่าให้ Google Cloud Search แสดงเนื้อหาเว็บแก่ผู้ใช้ได้โดยการทำให้ปลั๊กอินดัชนี Google Cloud Search ใช้งานได้สำหรับ Apache Nutch ซึ่งเป็นโปรแกรมรวบรวมข้อมูลเว็บแบบโอเพนซอร์ส

เมื่อคุณเริ่มการ Crawl เว็บ Apache Nutch จะทำการ Crawl เว็บและใช้ปลั๊กอินตัวจัดทำดัชนีเพื่ออัปโหลดเนื้อหาเอกสารเวอร์ชันไบนารี (หรือข้อความ) ไปยัง Google Cloud Search API การจัดทำดัชนี API ที่จัดทำดัชนีจะจัดทำดัชนีเนื้อหาและแสดงผลลัพธ์แก่ผู้ใช้

สิ่งสำคัญที่ควรพิจารณา

ข้อกำหนดของระบบ

ข้อกำหนดของระบบ
ระบบปฏิบัติการ Linux เท่านั้น
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 บิต)
ซอฟต์แวร์
  • Apache Nutch เวอร์ชัน 1.15 ซอฟต์แวร์ปลั๊กอินตัวจัดทำดัชนีรวมถึง Nutch เวอร์ชันนี้
  • Java JRE 1.8 ที่ติดตั้งในคอมพิวเตอร์ที่จะเรียกใช้ปลั๊กอินตัวจัดทำดัชนี
ประเภทเอกสาร Apache Tika รูปแบบเอกสารที่รองรับ Apache Tika 1.18

ทำให้ปลั๊กอินตัวจัดทำดัชนีใช้งานได้

ขั้นตอนต่อไปนี้อธิบายวิธีติดตั้งปลั๊กอินตัวจัดทำดัชนีและกำหนดค่าคอมโพเนนต์เพื่อรวบรวมข้อมูล URL ที่ระบุและแสดงผลลัพธ์ไปยัง Cloud Search

ข้อกำหนดเบื้องต้น

ก่อนจะทำให้ปลั๊กอินดัชนี Cloud Search Apache Nutch ใช้งานได้ ให้รวบรวมข้อมูลที่จำเป็นในการเชื่อมต่อ Google Cloud Search และแหล่งข้อมูลดังนี้

ขั้นตอนที่ 1: สร้างและติดตั้งซอฟต์แวร์ปลั๊กอินและ Apache Nutch

  1. โคลนที่เก็บปลั๊กอินของเครื่องมือจัดทำดัชนีจาก GitHub

    $ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git
    $ cd apache-nutch-indexer-plugin
  2. ดูเวอร์ชันปลั๊กอินตัวจัดทำดัชนีที่ต้องการ ดังนี้

    $ git checkout tags/v1-0.0.5
  3. สร้างปลั๊กอินเครื่องมือจัดทำดัชนี

    $ mvn package

    หากต้องการข้ามการทดสอบเมื่อสร้างปลั๊กอินตัวจัดทำดัชนี ให้ใช้ mvn package -DskipTests

  4. ดาวน์โหลด Apache Nutch 1.15 แล้วทำตามวิธีการติดตั้ง Apache Nutch

  5. แตกข้อมูล 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

  1. เปิด conf/nutch-site.xml แล้วเพิ่มพารามิเตอร์ต่อไปนี้

    การเกริ่นนำ พารามิเตอร์
    ปลั๊กอินประกอบด้วย plugin.includes = text

    ต้องระบุ รายการปลั๊กอินที่จะใช้ ต้องมีข้อมูลต่อไปนี้อย่างน้อย

    • ดัชนีแบบพื้นฐาน
    • เพิ่มดัชนี
    • ผู้จัดทำดัชนี Google Cloud Search
    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>
    
  2. เปิด 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 เว็บ ให้ไปที่บทแนะนำของ Nutch

  1. ตั้งค่า URL เริ่มต้น

    URL เริ่มต้นจะควบคุมว่าโปรแกรมรวบรวมข้อมูลเว็บ Apache Nutch จะเริ่มรวบรวมข้อมูลเนื้อหาของคุณที่ใด URL เริ่มต้นควรช่วยให้โปรแกรมรวบรวมข้อมูลเว็บเข้าถึงเนื้อหาทั้งหมดที่คุณต้องการรวมไว้ในการรวบรวมข้อมูลแต่ละครั้งได้โดยการไปตามลิงก์ต่างๆ ต้องระบุ URL เริ่มต้น

    วิธีตั้งค่า URL เริ่มต้น

    1. เปลี่ยนไดเรกทอรีการทำงานเป็นไดเรกทอรีการติดตั้ง

      $ cd ~/nutch/apache-nutch-X.Y/
    2. สร้างไดเรกทอรีสำหรับ URL:

      $ mkdir urls
    3. สร้างไฟล์ชื่อ seed.txt และระบุ URL ในไฟล์โดยให้มี URL บรรทัดละ 1 รายการ

  2. ตั้งกฎการปฏิบัติตามและไม่ปฏิบัติตาม

    กฎ URL การติดตามจะควบคุม URL ที่ระบบจะทำการ Crawl และรวมไว้ในดัชนีของ Google Cloud Search โปรแกรมรวบรวมข้อมูลเว็บจะตรวจสอบ URL กับกฎ URL ต่อไปนี้ ระบบจะทำการ Crawl และจัดทำดัชนีเฉพาะ URL ที่ตรงกับกฎเหล่านี้เท่านั้น

    กฎที่ไม่ทำตามจะยกเว้น URL ไม่ให้มีการ Crawl และรวมไว้ในดัชนีของ Google Cloud Search หาก URL มีรูปแบบ "ไม่ทำการ Crawl" โปรแกรมรวบรวมข้อมูลเว็บจะไม่รวบรวมข้อมูล URL นั้น

    หากต้องการตั้งค่ากฎ URL ที่ทำตามและที่ไม่ทำตาม ให้ทำดังนี้

    1. เปลี่ยนไดเรกทอรีการทำงานเป็นไดเรกทอรีการติดตั้ง

      $ cd ~/nutch/apache-nutch-X.Y/
    2. แก้ไข conf/regex-urlfilter.txt เพื่อเปลี่ยนกฎที่ติดตาม/ไม่ทำตาม: \

      $ nano conf/regex-urlfilter.txt
    3. ป้อนนิพจน์ทั่วไปที่มีคำนำหน้า "+" หรือ "-" เพื่อติดตาม / ไม่ติดตามรูปแบบ 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)
      #+.
      
  3. แก้ไขสคริปต์การรวบรวมข้อมูล

    หากไม่มีพารามิเตอร์ gcs.uploadFormat หรือตั้งค่าเป็น "raw" คุณจะต้องเพิ่มอาร์กิวเมนต์ "-addBinaryContent -base64" เพื่อส่งต่อไปยังคำสั่ง nutch index อาร์กิวเมนต์เหล่านี้บอกให้โมดูล Nutch Indexer รวมเนื้อหาไบนารีใน Base64 เมื่อเรียกใช้ปลั๊กอินตัวจัดทำดัชนี สคริปต์ ./bin/Crawl จะไม่มีอาร์กิวเมนต์เหล่านี้โดยค่าเริ่มต้น

    1. เปิดสคริปต์ crawl ใน apache-nutch-1.15/bin
    2. เพิ่มตัวเลือก -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