Nesta página do tutorial do Cloud Search, você aprende a configurar uma origem de dados. e conector de conteúdo para indexação de dados. Para começar do início deste tutorial, consulte Tutorial de primeiros passos do Cloud Search
Criar o conector
Mude seu diretório de trabalho para cloud-search-samples/end-to-end/connector
.
e execute este comando:
mvn package -DskipTests
O comando faz o download das dependências necessárias para criar o conector de conteúdo e compila o código.
Criar credenciais de conta de serviço
O conector exige credenciais da conta de serviço para chamar o Cloud Search. APIs de terceiros. Para criar as credenciais:
- Voltar para Console do Google Cloud:
- No painel de navegação à esquerda, clique em Credenciais. A "credencial" é exibida.
- Clique na lista suspensa + CRIAR CREDENCIAIS e selecione Conta de serviço. A opção "Criar conta de serviço" é exibida.
- No campo Nome da conta de serviço, digite "tutorial".
- Anote o valor do ID da conta de serviço (logo após o nome da conta de serviço). Esse valor será usado mais tarde.
- Clique em CRIAR. As "Permissões da conta de serviço (opcional)" é exibida.
- Clique em CONTINUAR. A página "Conceder aos usuários acesso a essa conta de serviço (opcional)" é exibida.
- Clique em CONCLUÍDO. As "Credenciais" aparece na tela.
- Em "Contas de serviço", clique no e-mail da conta. A página detalhes da conta" aplicativos de página.
- Em "Chaves", clique na lista suspensa ADICIONAR CHAVE e selecione Crie uma nova chave. O comando "Criar chave privada" é exibida.
- Clique em CRIAR.
- (opcional) Se a caixa "Você deseja permitir downloads console.cloud.google.com?" clique em Permitir.
- Um arquivo de chave privada é salvo no seu computador. Anote o local do arquivo baixado. Esse arquivo é usado na configuração do conector de conteúdo para ele pode se autenticar ao chamar as APIs do Google Cloud Search.
Inicializar o suporte de terceiros
Antes de chamar qualquer outra API do Cloud Search, você precisa inicializar para o Google Cloud Search.
Para inicializar o suporte de terceiros para o Cloud Search:
Seu projeto de plataforma do Cloud Search contém as credenciais da conta de serviço. No entanto, para inicializar o suporte de terceiros, é necessário criar arquivos da Web credenciais do aplicativo. Para instruções sobre como criar um aplicativo da Web credenciais, consulte Crie credenciais. Ao concluir esta etapa, você terá um ID e um arquivo de chave secreta do cliente.
Usar OAuth 2 Playground do Google para receber um token de acesso:
- Clique em "Configurações" e marque a opção Usar suas próprias credenciais de autenticação.
- Insira o ID e a chave secreta do cliente da etapa 1.
- Clique em Fechar.
- No campo de escopos, digite
https://www.googleapis.com/auth/cloud_search.settings
e clique em Autorizar. O OAuth 2 Playground retorna um código de autorização. - Clique em Trocar código de autorização dos tokens. Um token é retornado.
Para inicializar o suporte de terceiros para o Cloud Search, use o seguinte curl: kubectl. Substitua
[YOUR_ACCESS_TOKEN]
pelo token recebido em etapa 2.curl --request POST \ 'https://cloudsearch.googleapis.com/v1:initializeCustomer' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{}' \ --compressed
Se funcionar, o corpo da resposta vai ter uma instância de
operation
. Por exemplo:{ name: "operations/customers/01b3fqdm/lro/AOIL6eBv7fEfiZ_hUSpm8KQDt1Mnd6dj5Ru3MXf-jri4xK6Pyb2-Lwfn8vQKg74pgxlxjrY" }
Se não conseguir, entre em contato com o suporte do Cloud Search.
Use operations.get para verificar se o suporte de terceiros é inicializado:
curl \ 'https://cloudsearch.googleapis.com/v1/operations/customers/01b3fqdm/lro/AOIL6eBv7fEfiZ_hUSpm8KQDt1Mnd6dj5Ru3MXf-jri4xK6Pyb2-Lwfn8vQKg74pgxlxjrY?key= [YOUR_API_KEY]' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --compressed
Quando a inicialização do terceiro estiver concluída, ela conterá o O campo
done
foi definido comotrue
. Exemplo:{ name: "operations/customers/01b3fqdm/lro/AOIL6eBv7fEfiZ_hUSpm8KQDt1Mnd6dj5Ru3MXf-jri4xK6Pyb2-Lwfn8vQKg74pgxlxjrY" done: true }
Criar a fonte de dados
Em seguida, crie uma fonte de dados no Admin Console. A fonte de dados fornece um namespace para indexar conteúdo usando o conector.
- Abra o Google Admin Console.
- Clique no ícone "Apps". "Administração do Google Apps" é exibida.
- Clique em Google Workspace. "Apps Administração do Google Workspace" é exibida.
- Role para baixo e clique em Cloud Search. As "Configurações do Google Workspace" página aparece.
- Clique em Origens de dados de terceiros. As "Fontes de dados" é exibida.
- Clique no ícone amarelo circular +. A opção "Adicionar nova fonte de dados" é exibida.
- No campo Display name, digite "tutorial".
- No campo Endereços de e-mail da conta de serviço, digite o endereço de e-mail de a conta de serviço que você criou na seção anterior. Se você não souber o endereço de e-mail da conta de serviço, procure o valor em as contas de serviço página.
- Clique em ADICIONAR. A caixa de diálogo "Fonte de dados criada com sucesso" é exibida.
- Clique em *OK. Anote o ID da fonte recém-criada. O O ID da origem é usado para configurar o conector de conteúdo.
Gerar um token de acesso pessoal para a API GitHub
O conector exige acesso autenticado à API do GitHub para ter cota suficiente. Para simplificar, o conector usa endereços de acesso em vez do OAuth. Tokens pessoais permitem que a autenticação um usuário com um conjunto limitado de permissões, semelhante ao OAuth.
- Faça login no GitHub.
- No canto superior direito, clique na sua foto do perfil. Será exibido um menu suspenso.
- Clique em Configurações.
- Clique em Configurações do desenvolvedor.
- Clique em Tokens de acesso pessoal.
- Clique em Generate personal access token.
- No campo Observação, digite "Tutorial do Cloud Search".
- Verifique o escopo public_repo.
- Clique em Gerar token.
- Anote o token gerado. Ele é usado pelo conector para chamar o GitHub e fornece uma cota de API para realizar a indexação.
Configurar o conector
Depois de criar as credenciais e a fonte de dados, atualize o conector para incluir esses valores:
- Na linha de comando, altere o diretório para
cloud-search-samples/end-to-end/connector/
: - Abra o arquivo
sample-config.properties
com um editor de texto. - Defina o parâmetro
api.serviceAccountPrivateKeyFile
como o caminho do arquivo da credenciais de serviço que você transferiu por download anteriormente. - Defina o parâmetro
api.sourceId
como o ID da fonte de dados que você criados anteriormente. - Defina o parâmetro
github.user
como seu nome de usuário do GitHub. - Defina o parâmetro
github.token
como o token de acesso criado anteriormente. - Salve o arquivo.
Atualizar o esquema
O conector indexa conteúdo estruturado e não estruturado. Antes da indexação você precisa atualizar o esquema da fonte de dados. Execute este comando: para atualizar o esquema:
mvn exec:java -Dexec.mainClass=com.google.cloudsearch.tutorial.SchemaTool \
-Dexec.args="-Dconfig=sample-config.properties"
Executar o conector.
Para executar o conector e iniciar a indexação, execute o comando:
mvn exec:java -Dexec.mainClass=com.google.cloudsearch.tutorial.GithubConnector \
-Dexec.args="-Dconfig=sample-config.properties"
A configuração padrão do conector é indexar um único repositório
na organização googleworkspace
. A indexação do repositório leva cerca de um minuto.
Após a indexação inicial, o conector continua a procurar alterações no
repositório que precisa ser refletido no índice do Cloud Search.
Como revisar o código
As seções restantes examinam como o conector foi criado.
Como iniciar o aplicativo
O ponto de entrada para o conector é a classe GithubConnector
. O
O método main
instancia o IndexingApplication
do SDK.
e inicia o processo.
O ListingConnector
fornecidos pelo SDK implementa uma estratégia de travessia
que usa as filas do Cloud Search
usado para rastrear o estado dos itens no índice. Ele delega para GithubRepository
,
implementado pelo conector de amostra para acessar o conteúdo do GitHub.
Como percorrer os repositórios do GitHub
Durante travessias completas, o getIds()
é chamado para enviar itens que talvez precisem ser indexados na fila.
O conector pode indexar vários repositórios ou organizações. Para minimizar o
o impacto de uma falha, um repositório do GitHub é transferido por vez. Um checkpoint.
é retornado com os resultados da travessia que contém a lista de
para serem indexados nas chamadas subsequentes para getIds()
. Se ocorrer um erro
a indexação é retomada no repositório atual em vez de iniciar
desde o início.
O método collectRepositoryItems()
processa a travessia de uma única
repositório do GitHub. Esse método retorna uma coleção de ApiOperations
.
que representa os itens a serem enviados para a fila. Os itens são enviados como um
nome do recurso e um valor de hash que representa o estado atual do item.
O valor de hash é usado em travessias subsequentes do GitHub repositórios. Esse valor fornece uma verificação leve para determinar se o conteúdo foi alterado sem precisar enviar conteúdo adicional. O conector às cegas coloca todos os itens na fila. Se o item é novo ou o valor de hash foi alterado, ele é disponíveis para consulta na fila. Caso contrário, o item é considerado inalterado.
Como processar a fila
Após a conclusão da travessia completa, o conector começa a sondar
de itens que precisam ser indexados. O getDoc()
é chamado para cada item extraído da fila. O método lê
o item do GitHub e o converte na representação correta
para indexação.
Como o conector está sendo executado em dados ativos que podem ser alterados a qualquer
tempo, getDoc()
também verifica se o item na fila ainda é válido
e exclui todos os itens do índice que não existem mais.
Para cada um dos objetos do GitHub que o conector indexa, o
O método indexItem()
processa a criação da representação do item para
Cloud Search. Por exemplo, para construir a representação de itens de conteúdo:
Em seguida, implante a interface de pesquisa.