Bạn có thể thiết lập Google Cloud Search để phân phát nội dung web cho người dùng bằng cách triển khai trình bổ trợ 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 web, Apache Nutch sẽ thu thập dữ liệu web và sử dụng trình bổ trợ trình lập chỉ mục để tải các phiên bản tệp 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 của Google Cloud Search. API lập chỉ mục sẽ 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:
|
Phần mềm |
|
Các loại tài liệu Apache Tika | Các định dạng tài liệu được hỗ trợ trong 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ợ trình lập 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 đã 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 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ới nguồn dữ liệu:
- Khoá riêng của Google Workspace (chứa mã tài khoản dịch vụ). Để biết thông tin về cách lấy khoá riêng tư, hãy xem phần Thiết lập quyền truy cập vào API Google Cloud Search.
- Mã nguồn dữ liệu Google Workspace. Để biết thông tin về cách lấy mã nguồn dữ liệu, hãy xem bài viết Thêm nguồn dữ liệu để tìm kiếm.
Bước 1: Tạo và cài đặt phần mềm trình bổ trợ và Apache Nutch
Sao chép kho lưu trữ trình bổ trợ trình 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
Kiểm tra phiên bản trình bổ trợ trình lập chỉ mục mong muốn:
$ git checkout tags/v1-0.0.5
Tạo trình bổ trợ trình lập chỉ mục.
$ mvn package
Để bỏ qua các bài kiểm thử khi tạo trình bổ trợ chỉ mục, hãy sử dụng
mvn package -DskipTests
.Tải Apache Nutch 1.15 xuống rồi làm theo hướng dẫn cài đặt Apache Nutch.
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ụcplugins/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ợ 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, cần thiết để truy cập vào nguồn dữ liệu 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ợ tiếp cận trình bổ trợ 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 thông 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 API Cloud Search, defaultAcl.*
và 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.
Để biết nội dung mô tả về các tham số này, hãy xem phần Tham số của trình kết nối do Google cung cấp.
Bước 3: Định cấu hình Apache Nutch
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ần sử dụng. Thông tin này 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êmindexer-google-cloudsearch
vào 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 xem phần Thẻ meta phân tích cú pháp 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>
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>
Phần <writer> 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 đế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ợ chỉ mục đẩy nội dung tài liệu gốc chưa chuyển đổi.text
: trình bổ trợ 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 tính năng thu thập dữ liệu web
Trước khi bắt đầu thu thập dữ liệu web, hãy định cấu hình quá trình thu thập dữ liệu để 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 tính năng thu thập thông tin trên web, hãy xem hướng dẫn về Nutch.
Thiết lập URL bắt đầu.
URL bắt đầu kiểm soát vị trí trình thu thập thông tin web Apache Nutch bắt đầu thu thập thông tin nội dung của bạn. URL bắt đầu phải cho phép trình thu thập thông tin 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 thông tin cụ thể bằng cách theo các đường liên kết. Bắt buộc phải có URL bắt đầu.
Cách thiết lập URL bắt đầu:
Thay đổi thư mục đang hoạt động thành thư mục cài đặt nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Tạo thư mục cho URL:
$ mkdir urls
Tạo một tệp có tên
seed.txt
và liệt kê các URL trong đó, mỗi dòng một URL.
Thiết lập quy tắc theo dõi và không theo dõi.
Quy tắc tuân thủ URL 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 thông tin web kiểm tra URL theo các quy tắc về URL được theo dõi. 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.
Quy tắc không theo dõi sẽ ngăn việc thu thập dữ liệu URL và đưa URL 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 web sẽ không thu thập dữ liệu URL đó.
Cách thiết lập quy tắc theo dõi và không theo dõi URL:
Thay đổi thư mục đang hoạt động thành thư mục cài đặt nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Chỉnh sửa
conf/regex-urlfilter.txt
để thay đổi các quy tắc tuân theo/không tuân theo: \$ nano conf/regex-urlfilter.txt
Nhập biểu thức chính quy có tiền tố "+" hoặc "-" để tuân theo / không tuân theo mẫu và đuôi URL, như minh hoạ trong các ví dụ sau. Bạn đượ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) #+.
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 "thô", bạn phải thêm đối số "-addBinaryContent -base64
" để truyền đến lệnhnutch index
. Các đối số này yêu cầu mô-đun Trình lập chỉ mục Nutch đưa nội dung nhị phân vào Base64 khi mô-đun này gọi trình bổ trợ trình lập chỉ mục. Theo mặc định, tập lệnh ./bin/crawl không có các đối số này.- Mở tập lệnh
crawl
trongapache-nutch-1.15/bin
. 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 ..."
- Mở tập lệnh
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ợ trình lập chỉ mục, bạn có thể chạy trình bổ trợ đó trong 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 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 từ thư mục apache-nutch-1.15
:
$ bin/crawl -i -s urls/ crawl-test/ 5
Nhật ký thu thập thông tin có trên đầu ra std (thiết bị đầu cuối) hoặc trong thư mục logs/
. Để định hướng đầu ra ghi nhật ký hoặc để ghi nhật ký chi tiết hơn, hãy chỉnh sửa conf/log4j.properties
.