Implantar um plug-in indexador para Apache Nutch

É possível configurar o Google Cloud Search para exibir conteúdo da Web aos usuários. Para isso, implante o plug-in do 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 upload de versões binárias (ou de texto) originais do conteúdo do documento para a API Indexing do Google Cloud Search. A API Indexing indexa o conteúdo e exibe os resultados para os usuários.

Considerações importantes

Requisitos do sistema

Requisitos do sistema
Sistema operacional Somente no Linux:
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 bits)
Software
  • Apache Nutch versão 1.15. O software do plug-in indexador inclui essa versão do Nutch.
  • Java JRE 1.8 instalado no computador que vai executar o plug-in do indexador
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 do indexador do Apache Nutch do Cloud Search, colete as informações necessárias para conectar o Google Cloud Search e a origem de dados:

Etapa 1: criar e instalar o plug-in e o Apache Nutch

  1. 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
  2. Confira a versão desejada do plug-in do indexador:

    $ git checkout tags/v1-0.0.5
  3. Crie o plug-in do indexador.

    $ mvn package

    Para pular os testes durante a criação do plug-in do indexador, use mvn package -DskipTests.

  4. Faça o download do Apache Nutch 1.15 e siga as instruções de instalação do Apache Nutch.

  5. Extraia target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip (criado na etapa 2) para uma pasta. Copie a pasta plugins/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 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
Código 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 da chave da conta de serviço do Google Cloud Search que o administrador do Google Workspace criou para a acessibilidade do plug-in do indexador.

O exemplo a seguir mostra um arquivo de configuração de exemplo 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 de conector fornecidos pelo Google.

Etapa 3: configurar o Apache Nutch

  1. 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. Isso precisa incluir pelo menos:

    • index-basic
    • index-more
    • indexer-google-cloudsearch
    conf/nutch-default.xml fornece um valor padrão para essa propriedade, mas é necessário adicionar manualmente o indexer-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 Nutch-parse metatags.

    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>
    
  2. Abra conf/index-writers.xml e adicione esta 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 que o plug-in do indexador usa para enviar o conteúdo do documento para a API do indexador do Google Cloud Search. Os valores válidos são:

    • raw: o plug-in indexador envia o conteúdo original e não convertido do documento.
    • text: o plug-in indexador envia o conteúdo textual 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 das pesquisas. Esta seção oferece uma visão geral. Para mais informações sobre como configurar um rastreamento da Web, acesse o tutorial do Nutch.

  1. Configurar URLs iniciais.

    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 de início são obrigatórios.

    Para configurar os URLs iniciais, siga estas etapas:

    1. Altere o diretório de trabalho para o diretório de instalação nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Crie um diretório para URLs:

      $ mkdir urls
    3. Crie um arquivo chamado seed.txt e liste os URLs nele com um URL por linha.

  2. Configure 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 quanto às regras de seguir do URL. 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:

    1. Altere o diretório de trabalho para o diretório de instalação nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Edite conf/regex-urlfilter.txt para alterar as regras de seguir/não seguir: \

      $ nano conf/regex-urlfilter.txt
    3. Insira expressões regulares com um prefixo "+" ou "-" para seguir / não seguir extensões e padrões de URL, 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)
      #+.
      
  3. Edite o script de rastreamento.

    Se o parâmetro gcs.uploadFormat estiver ausente ou definido como "raw", será necessário adicionar argumentos "-addBinaryContent -base64" para transmitir ao comando nutch index. Esses argumentos informam ao módulo do indexador do Nutch para incluir conteúdo binário em Base64 quando ele invocar o plug-in do indexador. Por padrão, o script ./bin/crawl não tem esses argumentos.

    1. Abra o script crawl no apache-nutch-1.15/bin.
    2. 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 ..."
      

Etapa 5: iniciar um rastreamento da Web e fazer upload do conteúdo

Depois de instalar e configurar o plug-in do indexador, ele poderá ser executado por conta própria no modo local. Use os scripts de ./bin para executar um job de rastreamento ou comandos Nutch individuais.

No exemplo a seguir, presume-se que os componentes necessários estão 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 padrão (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.