오픈소스 웹 크롤러인 Apache Nutch용 Google Cloud Search 색인 생성기 플러그인을 배포하여 사용자에게 웹 콘텐츠를 제공하도록 Google Cloud Search를 설정할 수 있습니다.
웹 크롤링을 시작하면 Apache Nutch는 웹을 크롤링하고 색인 생성기 플러그인을 사용하여 문서 콘텐츠의 원본 바이너리 (또는 텍스트) 버전을 Google Cloud Search Indexing API에 업로드합니다. Indexing API로 콘텐츠의 색인을 생성하고 사용자에게 결과를 제공합니다.
중요 고려사항
시스템 요구사항
시스템 요구사항 | |
---|---|
운영체제 | Linux만 해당:
<ph type="x-smartling-placeholder">
|
소프트웨어 |
|
Apache Tika 문서 유형 | Apache Tika 1.18에서 지원되는 문서 형식 |
색인 생성기 플러그인 배포
다음 단계에서는 색인 생성기 플러그인을 설치하고, 지정된 URL을 크롤링하고 Cloud Search에 결과를 반환하도록 구성요소를 구성하는 방법을 설명합니다.
기본 요건
Cloud Search Apache Nutch 색인 생성기 플러그인을 배포하기 전에 Google Cloud Search와 데이터 소스를 연결하는 데 필요한 정보를 수집합니다.
- Google Workspace 비공개 키 (서비스 계정 ID 포함) 비공개 키를 얻는 방법에 대한 자세한 내용은 Google Cloud Search API에 대한 액세스 구성
- Google Workspace 데이터 소스 ID입니다. 데이터 소스 ID를 얻는 방법에 대해 자세히 알아보려면 다음을 참고하세요. 검색할 데이터 소스를 추가합니다.
1단계: 플러그인 소프트웨어와 Apache Nutch 빌드 및 설치
GitHub에서 색인 생성기 플러그인 저장소를 클론합니다.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
원하는 버전의 색인 생성기 플러그인을 확인합니다.
$ git checkout tags/v1-0.0.5
색인 생성기 플러그인을 빌드합니다.
$ mvn package
색인 생성기 플러그인을 빌드할 때 테스트를 건너뛰려면
mvn package -DskipTests
를 사용합니다.2단계에서 빌드된
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip
를 폴더로 추출합니다.plugins/indexer-google-cloudsearch
폴더를 Apache Nutch 설치 플러그인 폴더 (apache-nutch-1.15/plugins
)에 복사합니다.
2단계: 색인 생성기 플러그인 구성
Apache Nutch 색인 생성기 플러그인을 구성하려면 plugin-configuration.properties
파일을 만듭니다.
구성 파일은 Google Cloud Search 데이터 소스에 액세스하는 데 필요한 다음 매개변수를 지정해야 합니다.
설정 | 매개변수 |
데이터 소스 ID | api.sourceId = 1234567890abcdef 드림
필수. Google Workspace 관리자가 색인 생성기 플러그인에 설정한 Google Cloud Search 소스 ID입니다. |
서비스 계정 | api.serviceAccountPrivateKeyFile = ./PrivateKey.json 드림
필수. Google Workspace 관리자가 색인 생성기 플러그인 접근성을 위해 만든 Google Cloud Search 서비스 계정 키 파일입니다. |
다음 예는 필수 매개변수가 포함된 샘플 구성 파일을 보여줍니다.
#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#
구성 파일에는 색인 생성기 플러그인 동작을 제어하는 다른 매개변수도 포함될 수 있습니다. 이 포드에서 실행 중인
플러그인은 Cloud Search API, defaultAcl.*
및 batch.*
에 데이터를 푸시합니다. 색인 생성기 플러그인이 메타데이터와 구조화된 데이터를 채우는 방법을 구성할 수도 있습니다.
매개변수에 대한 설명을 보려면 다음으로 이동하세요. Google 제공 커넥터 매개변수
3단계: Apache Nutch 구성
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 메타태그.
다음 예는
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>
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
선택사항입니다. 색인 생성기 플러그인이 문서 콘텐츠를 Google Cloud Search Indexer API에 푸시하는 형식입니다. 유효한 값은 다음과 같습니다.
raw
: 색인 생성기 플러그인이 변환되지 않은 원본 문서 콘텐츠를 푸시합니다.text
: 색인 생성기 플러그인이 추출된 텍스트 콘텐츠를 푸시합니다. 기본값은raw
입니다.
4단계: 웹 크롤링 구성
웹 크롤링을 시작하기 전에 조직에서 검색에 제공하려는 정보만 포함하도록 크롤링을 구성하세요. 있습니다. 이 섹션에서는 개요를 제공합니다. 웹 크롤링 설정 방법에 대한 자세한 내용은 Nutch 튜토리얼.
시작 URL을 설정합니다.
시작 URL은 Apache Nutch 웹 크롤러가 콘텐츠 크롤링을 시작하는 위치를 제어합니다. 시작 URL을 사용하면 웹 크롤러가 게시자가 원하는 모든 콘텐츠에 도달할 수 있어야 합니다. 특정 크롤링에 포함할지 여부를 결정합니다. 시작 URL은 필수 항목입니다.
시작 URL을 설정하려면 다음 안내를 따르세요.
작업 디렉터리를 Nutch 설치 디렉터리로 변경합니다.
$ cd ~/nutch/apache-nutch-X.Y/
URL용 디렉터리를 만듭니다.
$ mkdir urls
seed.txt
라는 파일을 만들고 한 줄에 URL 1개를 포함하여 URL을 나열합니다.
팔로우 및 팔로우 안함 규칙을 설정합니다.
팔로우 URL 규칙은 어떤 URL이 크롤링되고 Google Cloud Search 색인에 포함되는지 제어합니다. 웹 크롤러는 URL을 URL 규칙을 따릅니다 이 규칙과 일치하는 URL만 크롤링되고 색인이 생성됩니다.
크롤링 제외 규칙은 URL을 크롤링 및 Google Cloud Search 색인 대상에서 제외합니다. URL에 크롤링 금지 패턴이 있으면 웹 크롤러가 크롤링하지 않습니다.
크롤링 포함/제외 URL 규칙을 설정하려면 다음 안내를 따르세요.
작업 디렉터리를 Nutch 설치 디렉터리로 변경합니다.
$ cd ~/nutch/apache-nutch-X.Y/
conf/regex-urlfilter.txt
을(를) 수정하여 팔로우/제외 규칙을 변경합니다. \$ nano conf/regex-urlfilter.txt
정규 표현식을 '+'와 함께 입력합니다. 또는 '-' 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) #+.
크롤링 스크립트를 수정합니다.
gcs.uploadFormat
매개변수가 누락되었거나 'raw'로 설정된 경우 추가해야 합니다. '-addBinaryContent -base64
'nutch index
에 전달할 인수 명령어와 함께 사용하면 됩니다 이 인수는 Nutch 색인 생성기 모듈에 바이너리 콘텐츠를 포함하도록 지시합니다. Base64에서 생성됩니다. ./bin/크롤링 스크립트에는 기본적으로 이러한 인수를 사용하는 것이 좋습니다.apache-nutch-1.15/bin
에서crawl
스크립트를 엽니다.다음 예와 같이 스크립트에
-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단계: 웹 크롤링 및 콘텐츠 업로드 시작하기
색인 생성기 플러그인을 설치하고 설정한 후 다음 위치에서 실행할 수 있습니다.
자체적으로 보유하고 있습니다 ./bin
의 스크립트를 사용하여 크롤링 작업을 실행하거나
실행할 수도 있습니다
다음 예에서는 필수 구성요소가 로컬 디렉터리에 있다고 가정합니다.
디렉터리 apache-nutch-1.15
디렉터리에서 다음 명령어를 사용하여 Nutch를 실행합니다.
$ bin/crawl -i -s urls/ crawl-test/ 5
크롤링 로그는 std 출력 (터미널) 또는 logs/
디렉터리에서 확인할 수 있습니다. 받는사람
로깅 출력을 지시하거나 보다 자세한 로깅을 사용하려면
conf/log4j.properties