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

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

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

สิ่งสำคัญที่ต้องคำนึงถึง

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

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

ติดตั้งใช้งานปลั๊กอินเครื่องมือจัดทำดัชนี

ขั้นตอนต่อไปนี้อธิบายวิธีติดตั้งปลั๊กอินเครื่องมือจัดทำดัชนีและกำหนดค่าคอมโพเนนต์เพื่อทำการ Crawl 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 ตั้งค่าไว้สำหรับปลั๊กอิน Indexer
บัญชีบริการ api.serviceAccountPrivateKeyFile = ./PrivateKey.json
ต้องระบุ ไฟล์คีย์บัญชีบริการของ Google Cloud Search ที่ผู้ดูแลระบบ Google Workspace สร้างขึ้นเพื่อการเข้าถึงปลั๊กอินเครื่องจัดทำดัชนี

ตัวอย่างต่อไปนี้แสดงไฟล์การกำหนดค่าตัวอย่างที่มีพารามิเตอร์ที่จำเป็น

#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#

นอกจากนี้ ไฟล์การกำหนดค่ายังมีพารามิเตอร์อื่นๆ ที่ควบคุมลักษณะการทำงานของปลั๊กอิน Indexer ได้ด้วย คุณกำหนดค่าวิธีที่ปลั๊กอิน พุชข้อมูลไปยัง Cloud Search API, defaultAcl.* และ batch.* ได้ นอกจากนี้ คุณยังกำหนดค่าวิธีที่ปลั๊กอิน Indexer จะป้อนข้อมูลเมตาและข้อมูลที่มีโครงสร้างได้ด้วย

ดูคำอธิบายพารามิเตอร์เหล่านี้ได้ที่ พารามิเตอร์ตัวเชื่อมต่อที่ Google จัดหาให้

ขั้นตอนที่ 3: กำหนดค่า Apache Nutch

  1. เปิด 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>
    
  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

    ไม่บังคับ รูปแบบที่ปลั๊กอินเครื่องมือจัดทำดัชนีพุชเนื้อหาเอกสารไปยัง Google Cloud Search Indexer API ค่าที่ใช้ได้มีดังนี้

    • raw: ปลั๊กอินเครื่องจัดทำดัชนีจะพุชเนื้อหาเอกสารต้นฉบับที่ยังไม่ได้แปลง
    • text: ปลั๊กอิน Indexer จะพุชเนื้อหาที่เป็นข้อความที่แยกออกมา ค่าเริ่มต้นคือ raw

ขั้นตอนที่ 4: กำหนดค่าการ Crawl เว็บ

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

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

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

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

    1. เปลี่ยนไดเรกทอรีที่ใช้งานอยู่เป็นไดเรกทอรีการติดตั้ง Nutch โดยใช้คำสั่งต่อไปนี้

      $ cd ~/nutch/apache-nutch-X.Y/
    2. สร้างไดเรกทอรีสำหรับ URL โดยใช้คำสั่งต่อไปนี้

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

  2. ตั้งค่ากฎการติดตามและกฎห้ามติดตาม

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

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

    วิธีตั้งค่ากฎ URL แบบติดตามและไม่ติดตาม

    1. เปลี่ยนไดเรกทอรีที่ใช้งานอยู่เป็นไดเรกทอรีการติดตั้ง Nutch โดยใช้คำสั่งต่อไปนี้

      $ 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. แก้ไขสคริปต์การ Crawl

    หากไม่มีพารามิเตอร์ gcs.uploadFormat หรือตั้งค่าเป็น "raw" คุณต้องเพิ่มอาร์กิวเมนต์ "-addBinaryContent -base64" เพื่อส่งไปยังคำสั่ง nutch index อาร์กิวเมนต์เหล่านี้จะบอกให้โมดูล Nutch Indexer รวมเนื้อหาไบนารี ใน Base64 เมื่อเรียกใช้ปลั๊กอิน Indexer สคริปต์ ./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 จะอยู่ในเอาต์พุตมาตรฐาน (เทอร์มินัล) หรือในlogs/ไดเรกทอรี หากต้องการ เปลี่ยนเส้นทางเอาต์พุตการบันทึกหรือบันทึกแบบละเอียดเพิ่มเติม ให้แก้ไข conf/log4j.properties