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 Google 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 bổ trợ 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 lập chỉ mục Google Cloud Search. Indexing API lập chỉ mục nội dung và phân phát kết quả cho người dùng.

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

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ợ 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 Apache Tika 1.18 hỗ trợ

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

Các bước sau đâ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 các URL được chỉ định 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 lập chỉ mục Apache Nutch của Cloud Search, hãy thu thập thông tin cần thiết để kết nối Google 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 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 bài kiểm thử khi tạo trình bổ trợ lập chỉ mục, 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 (được tạo ở bước 2) vào một thư mục. Sao chép thư mục plugins/indexer-google-cloudsearch vào thư mục trình bổ trợ cài đặt Apache Nutch (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 lập chỉ mục Apache Nutch, hãy tạo một tệp có tên là plugin-configuration.properties.

Tệp cấu hình phải chỉ định các tham số sau. Đây là những tham số cần thiết để truy cập vào nguồn dữ liệu Google Cloud Search.

Cài đặt Thông số
Mã nguồn dữ liệu api.sourceId = 1234567890abcdef
Bắt buộc. Mã nguồn Google 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ụ Google Cloud Search mà quản trị viên Google Workspace đã tạo để hỗ trợ khả năng truy cập của trình lập chỉ mục.

Ví dụ sau đây cho thấy một tệp cấu hình mẫu có các tham số bắt buộc.

#
# 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ố khác kiểm soát hành vi của trình bổ trợ lập chỉ mục. Bạn có thể định cấu hình cách trình bổ trợ đẩy dữ liệu vào API Cloud Search, defaultAcl.*batch.*. Bạn cũng có thể định cấu hình cách trình bổ trợ lập chỉ mục điền sẵn siêu dữ liệu và dữ liệu có cấu trúc.

Để xem nội dung mô tả về các tham số này, hãy truy cập vào bài viết 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 Thông 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 cho thuộc tính này, nhưng bạn cũng phải thêm indexer-google-cloudsearch vào thuộc tính này theo cách thủ công.
    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 đồ của nguồn dữ liệu tương ứng. Để tìm hiểu thêm về cách thiết lập Apache Nutch cho thẻ meta, hãy truy cập vào 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 tham số sau:

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

    Bắt buộc. Đường dẫn đầy đủ (tuyệt đối) đến tệp cấu hình Google 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ợ lập chỉ mục đẩy nội dung tài liệu đến API trình lập chỉ mục Google Cloud Search. Các giá trị hợp lệ là:

    • raw: trình bổ trợ lập chỉ mục sẽ đẩy nội dung tài liệu gốc, chưa được chuyển đổi.
    • text: trình bổ trợ lập chỉ mục đẩ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 hoạt độ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 quy trình thu thập dữ liệu để quy trình này chỉ bao gồm thông tin mà tổ chức của bạn muốn cung cấp trong kết quả tìm kiếm. Phần này cung cấp thông tin tổng quan; để biết thêm thông tin về cách thiết lập một quy trình thu thập dữ liệu trên web, 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 web Apache Nutch bắt đầu thu thập dữ liệu nội dung của bạn. Các URL bắt đầu phải cho phép trình thu thập dữ liệu web truy cập vào tất cả nội dung mà bạn muốn đưa vào một lần thu thập dữ liệu cụ thể bằng cách làm theo các đường liên kết. Bạn phải cung cấp URL bắt đầu.

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

    1. Thay đổi thư mục đang hoạt động thành 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 rồi liệt kê các URL trong tệp đó, mỗi dòng 1 URL.

  2. Thiết lập quy tắc theo dõi và không theo dõi.

    Các quy tắc về URL tuân theo sẽ kiểm soát những URL được thu thập dữ liệu và đưa vào chỉ mục Google Cloud Search. Trình thu thập dữ liệu trên web sẽ kiểm tra URL theo các quy tắc URL tuân theo. Chỉ những URL khớp với các quy tắc này mới được thu thập dữ liệu và lập chỉ mục.

    Các quy tắc không theo dõi sẽ loại trừ URL khỏi việc được thu thập dữ liệu và đưa vào chỉ mục của Google Cloud Search. Nếu một URL chứa mẫu không thu thập dữ liệu, thì trình thu thập dữ liệu trên web sẽ không thu thập dữ liệu URL đó.

    Cách thiết lập quy tắc URL theo dõi và không theo dõi:

    1. Thay đổi thư mục đang hoạt động thành thư mục cài đặt nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Chỉnh sửa conf/regex-urlfilter.txt để thay đổi quy tắc theo dõi/không theo dõi: \

      $ nano conf/regex-urlfilter.txt
    3. Nhập biểu thức chính quy có tiền tố "+" hoặc "-" để theo dõi / không theo dõi các mẫu và tiện ích URL, như minh hoạ trong các ví dụ sau. Bạn được phép sử dụng biểu thức không giới hạn.

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

    Nếu tham số gcs.uploadFormat bị thiếu hoặc được đặt thành "raw", bạn phải thêm các đối số "-addBinaryContent -base64" để truyền đến 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 khi gọi trình bổ trợ lập chỉ mục. Theo mặc định, tập lệnh ./bin/crawl không có các đối số này.

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

            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 cài đặt và thiết lập trình lập chỉ mục, bạn có thể chạy trình lập chỉ mục này riêng ở chế độ cục bộ. Sử dụng các tập lệnh từ ./bin để thực thi một công việc thu thập dữ liệu hoặc các lệnh Nutch riêng lẻ.

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

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

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