Implantar um plug-in indexador para Apache Nutch

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:
  • 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 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:

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. Crie 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 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
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 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 uma amostra de arquivo de configuração 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 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 ver descrições desses parâmetros, acesse Parâmetros do 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 manualmente 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 Metatags 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>
    
  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 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 informações que sua organização quer disponibilizar na pesquisa resultados. Esta seção fornece uma visão geral: para mais informações sobre como configurar um rastreamento da Web, acesse a Tutorial do Nutch.

  1. 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 devem permitir que o rastreador da Web acesse todo o conteúdo que você deseja incluir em um rastreamento específico seguindo os links. Os URLs iniciais 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. 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 em relação às seguir as regras de 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 mudar as regras de seguir/não seguir: \

      $ nano conf/regex-urlfilter.txt
    3. Insira expressões regulares com um sinal "+" ou "-" para seguir / não seguir padrões de URL e extensões, como mostrado no 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", é preciso adicionar "-addBinaryContent -base64" a serem transmitidos para a nutch index kubectl. Esses argumentos informam ao módulo indexador do Nutch para incluir conteúdo binário. em Base64 quando invoca o plug-in do indexador. O script ./bin/crawl não tem esses argumentos por padrão.

    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 do conteúdo

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

O exemplo a seguir pressupõe que os componentes necessários estão localizados no diretório diretório. 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 direcione a saída de registro ou, para um registro mais detalhado, edite conf/log4j.properties: