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

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

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

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

ก่อนติดตั้งใช้งานปลั๊กอินเครื่องมือจัดทำดัชนี 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 ให้สร้างไฟล์ชื่อ 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.* นอกจากนี้ คุณยังกําหนดค่าวิธีที่ปลั๊กอินเครื่องมือจัดทำดัชนีป้อนข้อมูลเมตาและ 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

    ไม่บังคับ รายการแท็กที่คั่นด้วยคอมมาซึ่งแมปกับพร็อพเพอร์ตี้ในสคีมาของแหล่งข้อมูลที่เกี่ยวข้อง ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีตั้งค่า Apache Nutch สําหรับเมตาแท็กได้ที่ 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> มีพารามิเตอร์ต่อไปนี้

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

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

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

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

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

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

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

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

    URL เริ่มต้นจะควบคุมตำแหน่งที่ Crawler ของ Apache Nutch จะเริ่มทำการ Crawl เนื้อหา URL เริ่มต้นควรช่วยให้ 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 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 รวมเนื้อหาไบนารีใน 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