Triển khai trình bổ trợ Apache Nutch Indexer

Bạn có thể thiết lập Google Cloud Search để phân phát nội dung trên web cho người dùng bằng cách triển khai trình lập chỉ mục Cloud Search cho Apache Nutch, một trình thu thập dữ liệu web nguồn mở.

Khi bạn bắt đầu thu thập dữ liệu trên web, Apache Nutch sẽ thu thập dữ liệu trên web và sử dụng trình lập chỉ mục để tải các phiên bản nhị phân (hoặc văn bản) gốc của nội dung tài liệu lên API Google Cloud Search. Cloud Search API lập chỉ mục nội dung và cung cấp kết quả cho người dùng.

Điểm quan trọng cần lưu ý

Trước khi triển khai trình bổ trợ lập chỉ mục, hãy lưu ý những điểm cần cân nhắc sau.

Yêu cầu hệ thống

Yêu cầu hệ thống
Hệ điều hành Chỉ dành cho Linux:
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 bit)
Phần mềm
  • Apache Nutch phiên bản 1.15. Phần mềm trình bổ trợ lập chỉ mục bao gồm phiên bản Nutch này.
  • Java JRE 1.8 được cài đặt trên máy tính sẽ chạy trình bổ trợ trình lập chỉ mục
Các loại tài liệu của Apache Tika Các định dạng tài liệu được hỗ trợ của Apache Tika 1.18

Triển khai trình bổ trợ lập chỉ mục

Các bước này mô tả cách cài đặt trình bổ trợ lập chỉ mục và định cấu hình các thành phần của trình bổ trợ này để thu thập dữ liệu URL và trả về kết quả cho Cloud Search.

Điều kiện tiên quyết

Trước khi triển khai trình bổ trợ lập chỉ mục, hãy thu thập thông tin cần thiết để kết nối Cloud Search và nguồn dữ liệu:

Bước 1: Tạo và cài đặt phần mềm bổ trợ và Apache Nutch

  1. Sao chép kho lưu trữ trình bổ trợ lập chỉ mục trên GitHub.

    $ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git
    $ cd apache-nutch-indexer-plugin
  2. Kiểm tra phiên bản của trình bổ trợ lập chỉ mục mà bạn muốn:

    $ git checkout tags/v1-0.0.5
  3. Tạo trình bổ trợ lập chỉ mục.

    $ mvn package

    Để bỏ qua các kiểm thử khi tạo trình bổ trợ, hãy sử dụng mvn package -DskipTests.

  4. Tải Apache Nutch 1.15 xuống và làm theo hướng dẫn cài đặt Apache Nutch.

  5. Giải nén target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip vào một thư mục. Sao chép thư mục plugins/indexer-google-cloudsearch vào thư mục Apache Nutch plugins (apache-nutch-1.15/plugins).

Bước 2: Định cấu hình trình bổ trợ lập chỉ mục

Để định cấu hình trình bổ trợ, hãy tạo một tệp có tên plugin-configuration.properties. Tệp cấu hình phải chỉ định các tham số sau để truy cập vào nguồn dữ liệu Cloud Search.

Cài đặt Tham số
Mã nguồn dữ liệu api.sourceId = 1234567890abcdef
Bắt buộc. Mã nguồn Cloud Search mà quản trị viên Google Workspace đã thiết lập cho trình bổ trợ lập chỉ mục.
Tài khoản dịch vụ api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Bắt buộc. Tệp khoá tài khoản dịch vụ Cloud Search mà quản trị viên Google Workspace đã tạo để hỗ trợ khả năng truy cập của trình bổ trợ lập chỉ mục.

Ví dụ sau đây minh hoạ một tệp cấu hình mẫu:

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

Tệp cấu hình cũng có thể chứa các tham số kiểm soát hành vi của trình bổ trợ, chẳng hạn như cách trình bổ trợ đẩy dữ liệu vào Cloud Search API và cách trình bổ trợ điền sẵn siêu dữ liệu và dữ liệu có cấu trúc. Để biết nội dung mô tả về các tham số này, hãy xem Tham số trình kết nối do Google cung cấp.

Bước 3: Định cấu hình Apache Nutch

  1. Mở conf/nutch-site.xml rồi thêm các tham số sau:

    Cài đặt Tham số
    Plugin này bao gồm plugin.includes = text

    Bắt buộc. Danh sách các trình bổ trợ sẽ sử dụng. Thông tin công bố phải bao gồm ít nhất:

    • index-basic
    • index-more
    • indexer-google-cloudsearch
    conf/nutch-default.xml cung cấp giá trị mặc định, nhưng bạn phải tự thêm indexer-google-cloudsearch vào giá trị đó.
    Tên thẻ meta metatags.names = text

    Không bắt buộc. Danh sách các thẻ được phân tách bằng dấu phẩy, liên kết với các thuộc tính trong giản đồ nguồn dữ liệu tương ứng. Để tìm hiểu thêm, hãy xem Nutch-parse metatags (Phân tích cú pháp thẻ meta Nutch).

    Ví dụ sau đây cho thấy nội dung sửa đổi bắt buộc đối với 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. Mở conf/index-writers.xml rồi thêm phần sau:

    <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>
    

    Phần <writer> chứa các thông số sau:

    Cài đặt Tham số
    Đường dẫn đến tệp cấu hình Cloud Search gcs.config.file = path

    Bắt buộc. Đường dẫn đầy đủ (tuyệt đối) đến tệp cấu hình Cloud Search.

    Định dạng tải lên gcs.uploadFormat = text

    Không bắt buộc. Định dạng mà trình bổ trợ sử dụng để đẩy nội dung tài liệu lên Cloud Search API. Các giá trị hợp lệ là:

    • raw: đẩy nội dung gốc, chưa được chuyển đổi.
    • text: đẩy nội dung văn bản đã trích xuất. Giá trị mặc định là raw.

Bước 4: Định cấu hình tính năng thu thập dữ liệu trên web

Trước khi bắt đầu thu thập dữ liệu trên web, hãy định cấu hình để chỉ bao gồm thông tin mà tổ chức của bạn muốn cung cấp. Để biết thêm thông tin, hãy xem hướng dẫn về Nutch.

  1. Thiết lập URL bắt đầu.

    URL bắt đầu kiểm soát vị trí mà trình thu thập dữ liệu trên web bắt đầu thu thập dữ liệu nội dung của bạn. Trình thu thập thông tin phải có thể truy cập vào tất cả nội dung bạn muốn đưa vào bằng cách đi theo các đường liên kết.

    Cách thiết lập URL bắt đầu:

    1. Chuyển sang thư mục cài đặt Nutch:
      $ cd ~/nutch/apache-nutch-X.Y/
    2. Tạo một thư mục cho các URL:
      $ mkdir urls
    3. Tạo một tệp có tên seed.txt và liệt kê một URL trên mỗi dòng.
  2. Thiết lập quy tắc theo dõi và không theo dõi.

    Quy tắc về URL theo dõi việc kiểm soát những URL mà trình thu thập dữ liệu lập chỉ mục. Quy tắc không theo dõi sẽ loại trừ các URL khỏi quá trình thu thập dữ liệu.

    Cách thiết lập các quy tắc này:

    1. Thay đổi thành thư mục cài đặt Nutch.
    2. Chỉnh sửa conf/regex-urlfilter.txt:
      $ nano conf/regex-urlfilter.txt
    3. Nhập biểu thức chính quy có tiền tố "+" hoặc "-":

      # 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. Chỉnh sửa tập lệnh thu thập dữ liệu.

    Nếu thiếu tham số gcs.uploadFormat hoặc được đặt thành "raw", bạn phải thêm đối số -addBinaryContent -base64 vào lệnh nutch index. Các đối số này yêu cầu mô-đun Nutch Indexer đưa nội dung nhị phân vào Base64.

    1. Mở tập lệnh crawl trong apache-nutch-1.15/bin.
    2. Thêm các lựa chọn như trong ví dụ này:

            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 ..."
      

Bước 5: Bắt đầu thu thập dữ liệu trên web và tải nội dung lên

Sau khi thiết lập trình bổ trợ lập chỉ mục, bạn có thể chạy trình bổ trợ này ở chế độ cục bộ. Sử dụng tập lệnh từ ./bin để thực thi một công việc thu thập dữ liệu.

Ví dụ sau giả định rằng các thành phần nằm trong thư mục cục bộ. Chạy Nutch từ thư mục apache-nutch-1.15:

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

Bạn có thể xem nhật ký thu thập dữ liệu trong thiết bị đầu cuối hoặc thư mục logs/. Để chuyển hướng đầu ra ghi nhật ký, hãy chỉnh sửa conf/log4j.properties.