Para configurar o Google Cloud Search para exibir conteúdo da Web aos usuários, implante o plug-in indexador do Google Cloud Search para Apache Nutch, um rastreador da Web de código aberto.
Quando você inicia o rastreamento da Web, o Apache Nutch rastreia a Web e usa o plug-in do indexador para fazer o upload das versões binárias (ou de texto) originais do conteúdo do documento para a API de indexação do Google Cloud Search. A API de indexação indexa o conteúdo e exibe os resultados aos usuários.
Considerações importantes
Requisitos do sistema
Requisitos do sistema | |
---|---|
Sistema operacional | Somente Linux:
|
Software |
|
Tipos de documentos do Apache Tika | Formatos de documentos compatíveis com o Apache Tika 1.18 |
Implantar o plug-in do indexador
As etapas a seguir descrevem como instalar o plug-in do indexador e configurar os componentes dele para rastrear os URLs especificados e retornar os resultados ao Cloud Search.
Pré-requisitos
Antes de implantar o plug-in indexador para Apache Nutch do Cloud Search, colete as informações necessárias para conectar o Google Cloud Search e a origem de dados:
- Chave privada do Google Workspace (que contém o ID da conta de serviço). Para informações sobre como conseguir uma chave privada, acesse Configurar o acesso à API Google Cloud Search.
- ID da fonte de dados do Google Workspace. Para informações sobre como conseguir um ID de origem de dados, acesse Adicionar uma origem de dados para pesquisar.
Etapa 1: criar e instalar o software do plug-in e o Apache Nutch
Clone o repositório do plug-in do indexador do GitHub.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
Confira a versão desejada do plug-in do indexador:
$ git checkout tags/v1-0.0.5
Crie o plug-in do indexador.
$ mvn package
Para pular os testes ao criar o plug-in do indexador, use
mvn package -DskipTests
.Faça o download do Apache Nutch 1.15 e siga as instruções de instalação do Apache Nutch.
Extraia o
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip
(criado na etapa 2) para uma pasta. Copie a pastaplugins/indexer-google-cloudsearch
para a pasta de plug-ins de instalação do Apache Nutch (apache-nutch-1.15/plugins
).
Etapa 2: configurar o plug-in do indexador
Para configurar o plug-in do indexador para Apache Nutch, crie um arquivo chamado plugin-configuration.properties
.
O arquivo de configuração precisa especificar os seguintes parâmetros, que são obrigatórios para acessar a origem de dados do Google Cloud Search.
Configuração | Parâmetro |
ID da origem de dados | api.sourceId = 1234567890abcdef
Obrigatório. O ID da origem do Google Cloud Search que o administrador do Google Workspace configurou para o plug-in do indexador. |
Conta de serviço | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Obrigatório. O arquivo de chave da conta de serviço do Google Cloud Search que o administrador do Google Workspace criou para garantir a acessibilidade do plug-in do indexador. |
O exemplo a seguir mostra um arquivo de configuração de amostra com os parâmetros necessários.
#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#
O arquivo de configuração também pode conter outros parâmetros que controlam o comportamento do plug-in do indexador. É possível configurar como o plug-in envia dados para a API Cloud Search, defaultAcl.*
e batch.*
. Também é possível configurar como o plug-in do indexador preenche metadados e dados estruturados.
Para descrições desses parâmetros, acesse Parâmetros do conector fornecidos pelo Google.
Etapa 3: configurar o Apache Nutch
Abra
conf/nutch-site.xml
e adicione os seguintes parâmetros:Configuração Parâmetro Elementos inclusos no plug-in plugin.includes = text
Obrigatório. Lista de plug-ins a serem usados. Ela precisa incluir pelo menos:
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xml
fornece um valor padrão para essa propriedade, mas você também precisa adicionar manualmenteindexer-google-cloudsearch
a ela.Nomes das metatags metatags.names = text
Opcional. Lista separada por vírgulas de tags que mapeiam para propriedades no esquema da origem de dados correspondente. Para saber mais sobre como configurar o Apache Nutch para metatags, acesse Metatag do Nutch-parse.
O exemplo a seguir mostra a modificação necessária para
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>
Abra
conf/index-writers.xml
e adicione a seguinte seção:<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>
A seção <writer> contém os seguintes parâmetros:
Configuração Parâmetro Caminho para o arquivo de configuração do Google Cloud Search gcs.config.file = path
Obrigatório. O caminho (absoluto) completo para o arquivo de configuração do Google Cloud Search.
Formato de upload gcs.uploadFormat = text
Opcional. O formato em que o plug-in do indexador envia o conteúdo do documento para a API do indexador do Google Cloud Search. Os valores válidos são:
raw
: o plug-in do indexador envia o conteúdo do documento original e não convertido.text
: o plug-in indexador envia o conteúdo de texto extraído. O valor padrão éraw
.
Etapa 4: configurar o rastreamento da Web
Antes de iniciar um rastreamento da Web, configure-o para que ele inclua apenas as informações que sua organização quer disponibilizar nos resultados da pesquisa. Esta seção fornece uma visão geral. Para mais informações sobre como configurar um rastreamento da Web, acesse o tutorial do Nutch.
Configure os URLs de início.
Os URLs iniciais controlam o local em que o rastreador da Web do Apache Nutch começa a rastrear o conteúdo. Os URLs iniciais precisam permitir que o rastreador da Web acesse todo o conteúdo que você quer incluir em um determinado rastreamento seguindo os links. Os URLs iniciais são obrigatórios.
Para configurar os URLs iniciais, siga estas etapas:
Altere o diretório de trabalho para o diretório de instalação nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Crie um diretório para URLs:
$ mkdir urls
Crie um arquivo chamado
seed.txt
e liste os URLs nele com um URL por linha.
Configurar regras de seguir e não seguir.
As regras de seguir controlam quais URLs são rastreados e incluídos no índice do Google Cloud Search. O rastreador da Web verifica os URLs de acordo com as regras de URL a seguir. Apenas os URLs que correspondem a essas regras são rastreados e indexados.
As regras de não seguir impedem que os URLs sejam rastreados e incluídos no índice do Google Cloud Search. Se um URL tiver um padrão de não rastreamento, o rastreador da Web não o rastreará.
Para configurar as regras de URL de seguir e não seguir, siga estas etapas:
Altere o diretório de trabalho para o diretório de instalação nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Edite
conf/regex-urlfilter.txt
para mudar as regras de seguir/não seguir: \$ nano conf/regex-urlfilter.txt
Insira expressões regulares com um prefixo "+" ou "-" para seguir / não seguir padrões de URL e extensões, conforme mostrado nos exemplos a seguir. Expressões abertas são permitidas.
# 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) #+.
Edite o script de rastreamento.
Se o parâmetro
gcs.uploadFormat
estiver ausente ou definido como "bruto", você precisará adicionar argumentos "-addBinaryContent -base64
" para transmitir ao comandonutch index
. Esses argumentos orientam o módulo do indexador do Nutch a incluir conteúdo binário em Base64 quando ele invoca o plug-in indexador. Por padrão, o script ./bin/crawl não tem esses argumentos.- Abra o script
crawl
emapache-nutch-1.15/bin
. Adicione as opções
-addBinaryContent -base64
ao script, como no exemplo a seguir: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 ..."
- Abra o script
Etapa 5: iniciar um rastreamento da Web e fazer upload do conteúdo
Depois de instalar e configurar o plug-in do indexador, ele pode ser executado por conta própria no modo local. Use os scripts de ./bin
para executar um job de rastreamento ou
comandos individuais do Nutch.
No exemplo a seguir, presume-se que os componentes necessários estejam localizados no diretório
local. Execute o Nutch com o seguinte comando no diretório apache-nutch-1.15
:
$ bin/crawl -i -s urls/ crawl-test/ 5
Os registros de rastreamento estão disponíveis na saída std (terminal) ou no diretório logs/
. Para direcionar a saída de geração de registros ou para ver um registro mais detalhado, edite conf/log4j.properties
.