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

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

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

สิ่งที่ต้องดำเนินการก่อน

ก่อนทำให้ปลั๊กอินตัวจัดทำดัชนี Apache Nutch ของ Cloud Search ใช้งานได้ ให้รวบรวมข้อมูลที่จำเป็นต่อการเชื่อมต่อ 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-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>
    
  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 เว็บ

ก่อนที่คุณจะเริ่มต้นการรวบรวมข้อมูลเว็บ ให้กำหนดค่าการรวบรวมข้อมูลเพื่อให้มีเฉพาะข้อมูลที่องค์กรของคุณต้องการให้แสดงในผลการค้นหา ส่วนนี้จะแสดงภาพรวม โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีตั้งค่าการรวบรวมข้อมูลเว็บในบทแนะนำสำหรับอาหาร

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

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

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

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

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

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

  2. ตั้งกฎติดตามและไม่ทำตาม

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

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

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

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

      $ 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 เพื่อเรียกใช้งานการรวบรวมข้อมูลหรือคำสั่ง Nutch แต่ละรายการ

ตัวอย่างต่อไปนี้จะสมมติว่าคอมโพเนนต์ที่จำเป็นอยู่ในไดเรกทอรีในเครื่อง เรียกใช้ Nutch ด้วยคำสั่งต่อไปนี้จากไดเรกทอรี apache-nutch-1.15

$ bin/crawl -i -s urls/ crawl-test/ 5

บันทึกการ Crawl จะใช้ได้ในเอาต์พุต STD (เทอร์มินัล) หรือในไดเรกทอรี logs/ หากต้องการกำหนดเส้นทางเอาต์พุตการบันทึกหรือการบันทึกที่มีข้อมูลรายละเอียดเพิ่มเติม ให้แก้ไข conf/log4j.properties