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

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

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

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

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

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

  1. โคลนที่เก็บปลั๊กอิน Indexer จาก 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 ไปยังโฟลเดอร์ คัดลอกโฟลเดอร์ plugins/indexer-google-cloudsearch ไปยังโฟลเดอร์ Apache Nutch plugins (apache-nutch-1.15/plugins)

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

หากต้องการกำหนดค่าปลั๊กอิน ให้สร้างไฟล์ชื่อ plugin-configuration.properties ไฟล์การกำหนดค่าต้องระบุพารามิเตอร์ต่อไปนี้เพื่อเข้าถึงแหล่งข้อมูล Cloud Search

การตั้งค่า พารามิเตอร์
รหัสแหล่งข้อมูล api.sourceId = 1234567890abcdef
ต้องระบุ รหัสแหล่งข้อมูล Cloud Search ที่ผู้ดูแลระบบ Google Workspace ตั้งค่าไว้สำหรับปลั๊กอินเครื่องมือจัดทำดัชนี
บัญชีบริการ api.serviceAccountPrivateKeyFile = ./PrivateKey.json
ต้องระบุ ไฟล์คีย์บัญชีบริการ Cloud Search ที่ผู้ดูแลระบบ Google Workspace สร้างขึ้นเพื่อให้ปลั๊กอิน Indexer เข้าถึงได้

ตัวอย่างต่อไปนี้แสดงไฟล์การกำหนดค่าตัวอย่าง

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

ไฟล์การกำหนดค่ายังมีพารามิเตอร์ที่ควบคุมลักษณะการทำงานของปลั๊กอินได้ด้วย เช่น วิธีที่ปลั๊กอินพุชข้อมูลไปยัง Cloud Search API และวิธีที่ ปลั๊กอินจะสร้างข้อมูลเมตาและ Structured Data ดูคำอธิบายพารามิเตอร์เหล่านี้ได้ที่ พารามิเตอร์เครื่องมือเชื่อมต่อที่ 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

    ไม่บังคับ รายการแท็กที่คั่นด้วยคอมมาซึ่งเชื่อมโยงกับพร็อพเพอร์ตี้ใน สคีมาแหล่งข้อมูลที่เกี่ยวข้อง ดูข้อมูลเพิ่มเติมได้ที่ Nutch-parse metatags

    ตัวอย่างต่อไปนี้แสดงการแก้ไขที่จำเป็นสำหรับ 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> มีพารามิเตอร์ต่อไปนี้

    การตั้งค่า พารามิเตอร์
    เส้นทางไปยังไฟล์การกำหนดค่า Cloud Search gcs.config.file = path

    ต้องระบุ เส้นทางแบบเต็ม (สัมบูรณ์) ไปยัง ไฟล์การกำหนดค่า Cloud Search

    รูปแบบการอัปโหลด gcs.uploadFormat = text

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

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

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

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

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

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

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

    1. เปลี่ยนเป็นไดเรกทอรีการติดตั้ง Nutch โดยใช้คำสั่งต่อไปนี้
      $ cd ~/nutch/apache-nutch-X.Y/
    2. สร้างไดเรกทอรีสำหรับ URL โดยใช้คำสั่งต่อไปนี้
      $ mkdir urls
    3. สร้างไฟล์ชื่อ seed.txt และระบุ URL บรรทัดละ 1 รายการ
  2. ตั้งค่ากฎการติดตามและไม่ติดตาม

    กฎ URL ติดตามจะควบคุม URL ที่ Crawler จัดทำดัชนี กฎ nofollow จะยกเว้น URL จากการ Crawl

    วิธีตั้งค่ากฎเหล่านี้

    1. เปลี่ยนเป็นไดเรกทอรีการติดตั้ง Nutch
    2. แก้ไข conf/regex-urlfilter.txt:
      $ nano conf/regex-urlfilter.txt
    3. ป้อนนิพจน์ทั่วไปที่มีคำนำหน้า "+" หรือ "-"

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

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

    1. เปิดสคริปต์ crawl ใน apache-nutch-1.15/bin
    2. เพิ่มตัวเลือกตามที่แสดงในตัวอย่างนี้

            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 จากไดเรกทอรี apache-nutch-1.15

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

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