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

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

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

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

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

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

ก่อนติดตั้งใช้งานปลั๊กอินตัวจัดทำดัชนี ให้รวบรวมข้อมูลที่จำเป็นสำหรับการเชื่อมต่อ 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 ไปยังโฟลเดอร์ คัดลอกโฟลเดอร์ plugins/indexer-google-cloudsearch ไปยัง โฟลเดอร์ plugins ของ Apache Nutch (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 สร้างขึ้นเพื่อให้ปลั๊กอินตัวจัดทำดัชนีเข้าถึงได้

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

# 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 เว็บ ให้กำหนดค่าการ Crawl เพื่อให้รวมเฉพาะข้อมูลที่องค์กรต้องการเผยแพร่ ดูข้อมูลเพิ่มเติมได้ที่ บทแนะนำของ Nutch

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

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

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

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

    กฎการติดตาม URL จะควบคุม URL ที่โปรแกรมรวบรวมข้อมูลจัดทำดัชนี กฎการไม่ติดตามจะยกเว้นไม่ให้มีการ Crawl URL

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

    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 ให้รวมเนื้อหาไบนารีใน 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