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 bổ trợ chỉ mục của 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 web, Apache Nutch thu thập dữ liệu trên web và sử dụng trình bổ trợ 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. API lập chỉ mục sẽ lập chỉ mục nội dung và cung cấp kết quả cho người dùng của bạn.

Đ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ợ trình 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 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ợ trình lập chỉ mục

Các bước sau đây mô tả cách cài đặt trình bổ trợ chỉ mục và định cấu hình các thành phần của trình bổ trợ để thu thập thông tin 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 bổ trợ chỉ mục Cloud Search Apache Nutch, hãy thu thập thông tin cần thiết để kết nối Google Cloud Search với nguồn dữ liệu:

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

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

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

    $ git checkout tags/v1-0.0.5
  3. Xây dựng trình bổ trợ trình lập chỉ mục.

    $ mvn package

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

  4. Tải Apache Nutch 1.15 rồi 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 (tích hợp ở 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ợ trình lập chỉ mục

Để định cấu hình Trình bổ trợ Trình 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 để truy cập vào nguồn dữ liệu của Google Cloud Search.

Xem xé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ợ trình 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 hỗ trợ tiếp cận của trình bổ trợ chỉ mục.

Ví dụ sau đây cho thấy một tệp cấu hình mẫu với 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ợ trình 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 Cloud Search API, defaultAcl.*batch.*. Bạn cũng có thể định cấu hình cách trình bổ trợ trình lập chỉ mục điền siêu dữ liệu và dữ liệu có cấu trúc.

Để xem nội dung mô tả về các thông số này, hãy chuyển đến Các thông số của 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 và thêm các tham số sau:

    Xem xét Thông số
    Trình bổ trợ bao gồm plugin.includes = text

    Bắt buộc. Danh sách trình bổ trợ có thể sử dụng. Dữ liệu này phải bao gồm ít nhất:

    • index-basic
    • chỉ mục khác
    • 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 đó theo cách thủ công.
    Tên thẻ meta metatags.names = text

    Không bắt buộc. Danh sách được phân tách bằng dấu phẩy gồm các thẻ liên kết đến các cơ sở lưu trú 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, truy cập Thẻ meta được phân tích cú pháp Nutch.

    Ví dụ sau đây cho thấy cần sửa đổi đố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 và 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>
    

    <Nhà văn> chứa các tham số sau:

    Xem xé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ợ trình lập chỉ mục đẩy nội dung tài liệu vào API trình lập chỉ mục của Google Cloud Search. Các giá trị hợp lệ là:

    • raw: trình bổ trợ trình 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ợ trình lập chỉ mục đẩy nội dung văn bản được trích xuất. Giá trị mặc định là raw.

Bước 4: Định cấu hình thu thập thông tin web

Trước khi bạn bắt đầu thu thập thông tin trên web, hãy định cấu hình thu thập thông tin để nó chỉ bao gồm thông tin mà tổ chức của bạn muốn cung cấp trong tìm kiếm kết quả. 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 thu thập thông tin web, hãy truy cập Hướng dẫn sử dụng Nutch.

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

    Các URL bắt đầu kiểm soát vị trí trình thu thập dữ liệu web Apache Nutch bắt đầu thu thập thông tin nội dung. URL bắt đầu phải cho phép trình thu thập thông tin web truy cập tất cả nội dung mà bạn muốn bao gồm trong trình thu thập thông tin cụ thể bằng cách đi theo liên kết. Cần có 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 đai ốc:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Tạo 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ê URL trong tệp đó, mỗi dòng 1 URL.

  2. Thiết lập các quy tắc tuân theo và không tuân thủ.

    Tuân thủ quy tắc URL kiểm soát URL nào được thu thập dữ liệu và đưa vào chỉ mục của Google Cloud Search. Trình thu thập thông tin web kiểm tra URL dựa trên tuân theo các quy tắc URL. Chỉ những URL phù hợp với các quy tắc này mới được thu thập thông tin và lập chỉ mục.

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

    Để thiết lập các quy tắc URL tuân theo và không tuân theo, hãy làm như sau:

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

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Chỉnh sửa conf/regex-urlfilter.txt để thay đổi các quy tắc tuân thủ/không tuân thủ: \

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

      # 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 thông tin.

    Nếu tham số gcs.uploadFormat bị thiếu hoặc được đặt thành "thô", bạn phải thêm "-addBinaryContent -base64" đối số cần truyền đến nutch index . Các đối số này yêu cầu mô-đun Trình lập chỉ mục Nutch bao gồm nội dung nhị phân trong Base64 khi gọi trình bổ trợ trình lập chỉ mục. Tập lệnh ./bin/beta không có các đối số này theo mặc định.

    1. Mở tập lệnh crawl trong apache-nutch-1.15/bin.
    2. Thêm các tuỳ 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 thông tin trên web và tải nội dung lên

Sau khi cài đặt và thiết lập trình bổ trợ chỉ mục, bạn có thể chạy trình bổ trợ đó trên của riêng mình ở chế độ cục bộ. Sử dụng các tập lệnh từ ./bin để thực thi lệnh thu thập dữ liệu hoặc từng lệnh Nutch.

Ví dụ sau đây giả định các thành phần bắt buộc được đặt trong thư mục. Chạy Nutch bằng lệnh sau từ 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ó trong đầu ra std (thiết bị đầu cuối) hoặc trong thư mục logs/. Người nhận trực tiếp đầu ra ghi nhật ký hoặc để ghi nhật ký chi tiết hơn, chỉnh sửa conf/log4j.properties.