Implantar um plug-in indexador para Apache Nutch

É possível configurar o Google Cloud Search para exibir conteúdo da Web aos usuários implantando o plug-in do indexador do Google Cloud Search para o Apache Nutch (em inglês), 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 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 Indexing indexa o conteúdo e exibe os resultados aos usuários.

Considerações importantes

Requisitos do sistema

Requisitos do sistema
Sistema operacional Somente 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 executará o plug-in do indexador
Tipos de documentos do Apache Tika Formatos de documentos compatíveis com 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:

Etapa 1: criar e instalar o software do 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. Criar o plug-in do indexador.

    $ mvn package

    Para pular os testes ao criar o plug-in do indexador, use mvn package -DskipTests.

  4. Faça o download do Apache Nutch 1.15 (em inglês) e siga as instruções de instalação do Apache Nutch.

  5. Extraia o 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 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 acessibilidade do plug-in do indexador.

No exemplo a seguir, mostramos um exemplo de arquivo de configuração com os parâmetros obrigató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. 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 indexer-google-cloudsearch manualmente 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 metatags de análise de Nutch.

    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 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 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 do indexador envia o conteúdo do documento original e não convertido.
    • text: o plug-in do 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 inclua apenas as informações que sua organização quer disponibilizar nos resultados da pesquisa. Nesta seção, você tem uma visão geral. Para mais informações sobre como configurar um rastreamento da Web, acesse o Tutorial do Nutch.

  1. Configure os 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 permitem que o rastreador da Web alcance todo o conteúdo que você quer incluir em um rastreamento específico 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. Definir as 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 em relação às 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:

    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 mudar as regras de seguir/não seguir: \

      $ nano conf/regex-urlfilter.txt
    3. Insira expressões regulares com um prefixo "+" ou "-" para seguir ou não seguir padrões e extensõ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 instruem o módulo do indexador do Nutch a incluir conteúdo binário em Base64 quando invocar o plug-in do indexador. Por padrão, o script ./bin/crawl não tem esses argumentos.

    1. Abra o script crawl em 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 de 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 Nutch individuais.

O exemplo a seguir pressupõe 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.