Parâmetros de configuração fornecidos pelo Google

Cada conector tem um arquivo de configuração associado que contém os parâmetros usados pelo conector, como o ID do repositório. Os parâmetros são definidos como pares de chave-valor, como api.sourceId=1234567890abcdef.

O SDK do Google Cloud Search contém vários parâmetros de configuração fornecidos pelo Google usados por conectores diferentes. Dos parâmetros de configuração fornecidos pelo Google, apenas os parâmetros de acesso à fonte de dados precisam ser definidos no arquivo de configuração. Não é necessário redefinir os parâmetros fornecidos pelo Google no arquivo de configuração, a menos que você queira modificar os valores padrão.

Esta referência descreve os parâmetros de configuração fornecidos pelo Google.

Exemplo de arquivo de configuração

O exemplo a seguir mostra um arquivo de configuração de identidade com pares de chave-valor de parâmetro.

#
# Configuration file sample
#
api.sourceId=1234567890abcdef
api.identitySourceId=0987654321lmnopq
api.serviceAccountPrivateKeyFile= ./PrivateKey.json

#
# Traversal schedules
#
schedule.traversalIntervalSecs=7200
schedule.incrementalTraversalIntervalSecs=600
#
# Default ACLs
#
defaultAcl.mode=fallback
defaultAcl.public=true
  

Parâmetros comuns

Esta seção lista os parâmetros de configuração obrigatórios e opcionais definidos com frequência. Se você não alterar os valores dos parâmetros opcionais, o conector usará os valores padrão fornecidos pelo SDK.

Acesso à fonte de dados

A tabela a seguir lista todos os parâmetros necessários para aparecer em um arquivo de configuração. Os parâmetros usados dependem do tipo de conector que você está criando (conector de conteúdo ou de identidade).

Configuração Parâmetro
Código da fonte de dados api.sourceId=1234567890abcdef

Esse parâmetro é exigido por um conector para identificar o local do repositório. Você consegue esse valor ao adicionar uma origem de dados à pesquisa. Esse parâmetro precisa estar nos arquivos de configuração do conector.

ID da origem de identidade api.identitySourceId=0987654321lmnopq

Esse parâmetro é exigido pelos conectores de identidade para identificar o local de uma origem de identidade externa. Você recebeu esse valor ao mapear identidades de usuários no Cloud Search. Esse parâmetro precisa estar em todos os arquivos de configuração do conector de identidade.

Arquivo de chave privada da conta de serviço api.serviceAccountPrivateKeyFile=./PrivateKey.json

Esse parâmetro contém a chave privada necessária para acessar o repositório. Você recebeu esse valor quando configurou o acesso à API REST do Google Cloud Search. Esse parâmetro precisa estar em todos os arquivos de configuração.

ID da conta de serviço api.serviceAccountId=123abcdef4567890

O ID da conta de serviço é especificado nesse parâmetro. O valor padrão de string vazia só é permitido quando o arquivo de configuração especifica um parâmetro de arquivo de chave privada. Esse parâmetro será obrigatório se o arquivo de chave privada não for uma chave JSON.

ID da conta do Google Workspace api.customerId=123abcdef4567890

Esse parâmetro especifica o ID da conta do Google Workspace da empresa. Você conseguiu esse valor ao mapear identidades de usuários no Cloud Search. Esse parâmetro é obrigatório ao sincronizar usuários utilizando um conector de identidade.

URL raiz api.rootUrl=baseURLPath

Este parâmetro especifica o caminho do URL base do serviço de indexação.

O valor padrão desse parâmetro é uma string vazia que é convertida em https://cloudsearch.googleapis.com.

Programações de travessia

Os parâmetros de programação determinam a frequência com que o conector aguarda entre traversals.

Configuração Parâmetro
Travessia completa na inicialização do conector schedule.performTraversalOnStart=true|false

O conector executa uma travessia completa na inicialização do conector em vez de esperar a expiração do primeiro intervalo. O valor padrão é true.

Traversal completa após um intervalo schedule.traversalIntervalSecs=intervalInSeconds

O conector executa uma traversal completa após um intervalo especificado. Especifique o intervalo entre travessias em segundos. O valor padrão é 86400 (número de segundos em um dia).

Sair após uma única travessia connector.runOnce=true|false

O conector executa uma travessia completa uma vez e sai. Esse parâmetro só deverá ser definido como true se você estiver usando uma estratégia de travessia completa. As estratégias de listagem e gráfico exigem várias travessias para detectar mudanças e indexar o conteúdo. O valor padrão é false (não saia após uma única travessia).

Travessia incremental após um intervalo schedule.incrementalTraversalIntervalSecs=intervalInSeconds

O conector executa uma travessia incremental após um intervalo especificado. Especifique o intervalo entre as traversais em segundos. O valor padrão é 300 (número de segundos em 5 minutos).

Intervalos da fila de enquetes programados schedule.pollQueueIntervalSecs=interval_in_seconds

O intervalo entre os intervalos da fila de enquetes programados (em segundos). Isso é usado apenas por um conector de travessia de listagem. O valor padrão é 10.

Listas de controle de acesso

O conector controla o acesso aos itens usando ACLs. Vários parâmetros permitem que você proteja o acesso de usuários a registros indexados com ACLs.

Se o repositório tiver informações individuais da ACL associadas a cada item, faça o upload de todas as informações da ACL para controlar o acesso ao item no Cloud Search. Se o repositório fornecer informações parciais ou nenhuma informação da ACL, será possível fornecer as informações padrão da ACL nos parâmetros a seguir, que serão enviados pelo SDK ao conector.

Configuração Parâmetro
Modo da ACL defaultAcl.mode=mode

Determina quando aplicar a ACL padrão. Valores válidos:

  • none: não use a ACL padrão (nesse modo, os registros não são pesquisáveis, a menos que você defina ACLs individuais).
  • fallback: usar a ACL padrão somente se não houver nenhuma ACL presente
  • append: adicionar a ACL padrão à ACL atual
  • override: substituir a ACL atual pela ACL padrão

O modo padrão é none.

ACL pública padrão defaultAcl.public=true|false

A ACL padrão usada para todo o repositório é definida como acesso de domínio público. O valor padrão é false.

Leitores de grupo de ACL comum defaultAcl.readers.groups=google:group1@mydomain.com, group2
Leitores de ACL comum defaultAcl.readers.users=user1, user2, google:user3@mydomain.com
Leitores de grupo de ACL comum negados defaultAcl.denied.groups=group3
Leitores de ACL comum negados defaultAcl.denied.users=user4, user5
Acesso ao domínio inteiro Para especificar que todos os registros indexados possam ser acessados publicamente por todos os usuários no domínio, defina os dois parâmetros a seguir com valores:
  • defaultAcl.mode=override
  • defaultACL.public=true
ACL comum definida Para especificar uma ACL para cada registro do repositório de dados, defina todos os valores de parâmetro a seguir:
  • defaultAcl.mode=fallback
  • defaultAcl.public=false
  • defaultAcl.readers.groups=google:group1@mydomain.com, group2 code>
  • defaultAcl.readers.users=user1@mydomain.com, user2, google:user3@mydomain.com
  • defaultAcl.denied.groups=group3
  • defaultAcl.denied.users=user4, user5

    Cada usuário e grupo especificado é considerado um usuário/grupo definido pelo domínio local, a menos que prefixado com "google:" (constante literal).

    O usuário ou grupo padrão é uma string vazia. Forneça parâmetros de usuário e grupo somente se defaultAcl.public estiver definido como false. Para listar vários grupos e usuários, use listas delimitadas por vírgulas.

    Se defaultAcl.mode for definido como none, os registros não poderão ser pesquisados sem ACLs individuais definidas.

Parâmetros de configuração de metadados

Alguns dos metadados do item são configuráveis. Os conectores podem definir campos de metadados configuráveis durante a indexação. Se o conector não definir um campo, os parâmetros no arquivo de configuração serão usados para defini-lo.

O arquivo de configuração tem uma série de parâmetros de configuração de metadados nomeados indicados por um sufixo .field, como itemMetadata.title.field=movieTitle. Se houver um valor para esses parâmetros, ele será usado para configurar o campo de metadados. Se não houver valor para o parâmetro de metadados nomeado, os metadados serão configurados usando um parâmetro com o sufixo .defaultValue.

A tabela a seguir mostra os parâmetros de configuração de metadados.

Configuração Parâmetro
Título itemMetadata.title.field=movieTitle
itemMetadata.title.defaultValue=Gone with the Wind
Título do item. Se title.field não estiver definido como um valor, o valor de title.defaultValue será usado.
URL do repositório de origem itemMetadata.sourceRepositoryUrl.field=url
itemMetadata.sourceRepositoryUrl.defaultValue=https://www.imdb.com/title/tt0031381/
O URL do item usado nos resultados da pesquisa. Basta definir o defaultValue para manter um URL para todo o repositório, por exemplo, se seu representante for um arquivo CSV e houver apenas um URL para cada item. Se o sourceRepositoryUrl.field não estiver definido como um valor, o valor de sourceRepositoryUrl.defaultValue será usado.
Nome do contêiner itemMetadata.containerName.field=containerName
itemMetadata.containerName.defaultValue=myDefaultContainerName
O nome do contêiner do item, como o nome de um diretório ou uma pasta do sistema de arquivos. Se containerName.field não estiver definido como um valor, o valor de containerName.defaultValue será usado.
Tipo de objeto itemMetadata.objectType.field=type
itemMetadata.objectType.defaultValue=movie
O tipo de objeto usado pelo conector, conforme definido no esquema. O conector não indexará nenhum dado estruturado se essa propriedade não for especificada.
Se objectType.field não estiver definido como um valor, o valor de objectType.defaultValue será usado.
Horário de criação itemMetadata.createTime.field=releaseDate
itemMetadata.createTime.defaultValue=1940-01-17
O carimbo de data/hora de criação do documento. Se createTime.field não estiver definido como um valor, o valor de createTime.defaultValue será usado.
Horário de atualização itemMetadata.updateTime.field=releaseDate
itemMetadata.updateTime.defaultValue=1940-01-17
O carimbo de data/hora da última modificação do item. Se updateTime.field não estiver definido como um valor, o valor de updateTime.defaultValue será usado.
Idioma do conteúdo itemMetadata.contentLanguage.field=languageCode
itemMetadata.contentLanguage.defaultValue=en-US
O idioma do conteúdo dos documentos que estão sendo indexados. Se contentLanguage.field não estiver definido como um valor, o valor de contentLanguage.defaultValue será usado.
Tipo MIME itemMetadata.mimeType.field=mimeType
itemMetadata.mimeType.defaultValue=image/bmp
O tipo MIME original do ItemContent.content no repositório de origem. O tamanho máximo é de 256 caracteres. Se mimeType.field não estiver definido como um valor, o valor de mimeType.defaultValue será usado.
Metadados de qualidade da Pesquisa itemMetadata.searchQualityMetadata.quality.field=quality
itemMetadata.searchQualityMetadata.quality.defaultValue=1
Uma indicação da qualidade do item, usada para influenciar a qualidade da pesquisa. O valor precisa estar entre 0,0 (qualidade mais baixa) e 1,0 (qualidade mais alta). O valor padrão é 0,0. Se quality.field não estiver definido como um valor, o valor de quality.defaultValue será usado.
Hash itemMetadata.hash.field=hash
itemMetadata.hash.defaultValue=f0fda58630310a6dd91a7d8f0a4ceda2
Valor de hash fornecido pelo autor da chamada de API. Isso pode ser usado com o método items.push para calcular o estado modificado. O tamanho máximo é de 2.048 caracteres. Se hash.field não estiver definido como um valor, o valor de hash.defaultValue será usado.

Formatos de data e hora

Os formatos de data e hora especificam os formatos esperados nos atributos de metadados. Se o arquivo de configuração não contiver esse parâmetro, os valores padrão serão usados. Veja esse parâmetro na tabela a seguir.

Configuração Parâmetro
Formatos adicionais de data e hora structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX
Uma lista separada por ponto e vírgula de padrões java.time.format.DateTimeFormatter extras. Os padrões são usados ao analisar valores de string de quaisquer campos de data ou data-hora nos metadados ou no esquema. O valor padrão é uma lista vazia, mas os formatos RFC 3339 e RFC 1123 são sempre aceitos.

Dados estruturados

A API Cloud Search Indexing oferece um serviço de esquema que pode ser usado para personalizar a forma como o Cloud Search indexa e exibe os dados. Se você estiver usando um esquema de repositório local, especifique o nome do esquema local de dados estruturados.

Configuração Parâmetro
Nome do esquema local structuredData.localSchema=mySchemaName

O nome do esquema é lido na fonte de dados e usado para dados estruturados do repositório.

O padrão é uma string vazia.

Qualidade do conteúdo e da pesquisa

Para repositórios que contêm conteúdo baseado em registro ou campo (como CRM, CVS ou banco de dados), o SDK permite a formatação HTML automática dos campos de dados. O conector define os campos de dados no início da execução e, em seguida, usa um modelo de conteúdo para formatar cada registro de dados antes de fazer o upload para o Cloud Search.

O modelo de conteúdo define a importância de cada valor de campo para pesquisa. O campo HTML <title> é obrigatório e definido como a prioridade mais alta. É possível designar níveis de importância de qualidade da pesquisa para todos os outros campos de conteúdo: alto, médio ou baixo. Qualquer campo de conteúdo não definido em uma categoria específica tem como padrão prioridade baixa.

Configuração Parâmetro
Título HTML do conteúdo contentTemplate.templateName.title=myTitleField

O título HTML do conteúdo e o campo de maior qualidade de pesquisa. Esse parâmetro será necessário somente se você estiver usando um modelo de conteúdo HTML. O valor padrão é uma string vazia.

Alta qualidade da pesquisa para campos de conteúdo contentTemplate.templateName.quality.high=hField1,hField2

Campos de conteúdo com uma alta prioridade de pesquisa. O padrão é uma string vazia.

Qualidade da pesquisa média para campos de conteúdo contentTemplate.templateName.quality.medium=mField1,mField2

Campos de conteúdo com prioridade de pesquisa média. O padrão é uma string vazia.

Baixa qualidade de pesquisa para campos de conteúdo contentTemplate.templateName.quality.low=lField1,lField2

Campos de conteúdo com baixa prioridade de pesquisa. O padrão é uma string vazia.

Campos de conteúdo não especificado contentTemplate.templateName.unmappedColumnsMode=value

Como o conector lida com campos de conteúdo não especificado. Os valores válidos são:

  • APPEND: corrige campos de conteúdo não especificados no modelo
  • IGNORE: ignora campos de conteúdo não especificados

    O valor padrão é APPEND.

Incluir nomes de campos no modelo HTML contentTemplate.templateName.includeFieldName=true|false

Especifica se os nomes dos campos serão incluídos com os dados do campo no modelo HTML. O padrão é true e faz com que os nomes dos campos sejam pesquisáveis como parte dos dados de conteúdo.

Parâmetros definidos de forma incomum

Raramente será necessário definir os parâmetros listados nesta seção. Os padrões dos parâmetros são definidos para um desempenho ideal. O Google não recomenda definir esses parâmetros com valores diferentes dos padrões sem requisitos específicos no seu repositório.

Configuração do proxy

Com o SDK, é possível configurar seu conector para usar um proxy em conexões de saída.

Os parâmetros transport.proxy.hostname e transport.proxy.port são necessários para ativar o transporte por um proxy. Os outros parâmetros podem ser necessários se o proxy exigir autenticação ou operar por meio do protocolo SOCKS em vez de HTTP. Se transport.proxy.hostname não for definido, o SDK não usará um proxy.

Configuração Parâmetro
Nome do host transport.proxy.hostname=hostname

O nome do host do servidor proxy. Esse parâmetro é obrigatório ao usar um proxy.

Porta transport.proxy.port=port

O número da porta do servidor proxy. Esse parâmetro é obrigatório ao usar um proxy.

Tipo de proxy transport.proxy.type=type

O tipo de proxy. Os valores válidos são:

  • HTTP: o proxy aceita e encaminha solicitações por HTTP.
  • SOCKS: o proxy aceita e encaminha pacotes sobre o protocolo SOCKS.

O valor padrão é HTTP.

Nome de usuário transport.proxy.username=username

O nome de usuário a ser usado na construção de um token de autorização de proxy. Esse parâmetro é opcional e só deverá ser definido se o proxy exigir autenticação.

Senha transport.proxy.password=password

A senha a ser usada ao criar um token de autorização de proxy. Esse parâmetro é opcional e só deverá ser definido se o proxy exigir autenticação.

Travesseiros

O SDK permite especificar vários atravessadores individuais para permitir travessias paralelas de um repositório de dados. Os conectores de modelo do SDK usam esse recurso.

Configuração Parâmetro
Tamanho do pool de linhas de execução traverse.threadPoolSize=size

Número de linhas de execução que o conector cria para permitir o processamento paralelo. Um único iterador busca operações em série (normalmente objetos RepositoryDoc), mas a API chama processos em paralelo usando esse número de linhas de execução.

O valor padrão é 5.

Tamanho de partição traverse.partitionSize=batchSize

Número de ApiOperation() a serem processados em lotes antes de buscar mais APIOperation.

O valor padrão é 50.

Solicitações de enquete do Traverser

O núcleo da fila de indexação do Cloud Search é uma fila de prioridade que contém uma entrada para cada item. Um conector de listagem pode solicitar a pesquisa de itens da API de indexação. Uma solicitação de pesquisa recebe as entradas de prioridade mais alta da fila de indexação.

Os parâmetros a seguir são usados pelo modelo de conector de listagem do SDK para definir parâmetros de pesquisa.

Configuração Parâmetro
Transversal de repositórios repository.traversers=t1, t2, t3, ...

Cria um ou mais atravessadores individuais em que t1, t2, t3 e ... é o nome exclusivo de cada um. Cada atravessador nomeado tem o próprio conjunto de configurações, que são identificados usando o nome exclusivo dele, como traversers.t1.hostload e traversers.t2.hostload.

Fila a ser pesquisada traverser.pollRequest.queue=mySpecialQueue

Nomes de fila que este atravessador consulta. O padrão é uma string vazia (implica de "padrão").

traverser.t1.pollRequest.queue=mySpecialQueue

Quando você tiver vários atravessadores, defina os status do item para cada um deles (em que t1 representa um atravessador específico).

Comportamento da pesquisa traverser.pollRequest.limit=maxItems

Número máximo de itens a serem retornados de uma solicitação de pesquisa. O valor padrão é 0 (implita o máximo da API).

traverser.t1.pollRequest.limit=limit

Quando você tiver vários atravessadores, defina os status do item para cada um deles (em que t1 representa um atravessador específico).

Status do item traverser.pollRequest.statuses=statuses

O status do item específico que este atravessador consulta, em que statuses pode ser qualquer combinação de MODIFIED, NEW_ITEM (separados por vírgulas). O padrão é uma string vazia (implíbe todos os valores de status).

traverser.t1.pollRequest.statuses=statusesForThisTraverser

Quando você tiver vários atravessadores, defina os status do item para cada um deles (em que t1 representa um atravessador específico).

Carga do host traverser.hostload=threads

Número máximo de threads paralelos ativos disponíveis para pesquisa. O valor padrão é 5..

traverser.t1.hostload=threadsForThisTraverser

Quando você tiver vários atravessadores, defina os status do item para cada um deles (em que t1 representa um atravessador específico).

Tempo limite traverser.timeout=timeout

Valor de tempo limite para interromper esta tentativa de pesquisa de atravessador.

O valor padrão é 60.

traverser.t1.timeout=timeoutForThisTraverser

Quando você tiver vários atravessadores, defina os status do item para cada um deles (em que t1 representa um atravessador específico).

traverser.timeunit=timeoutUunit

As unidades de tempo limite. Os valores válidos são SECONDS, MINUTES,

traverser.t1.timeunit=timeoutUnit

Quando você tiver vários atravessadores, defina os status do item para cada um deles (em que t1 representa um atravessador específico).

Na maioria dos casos, um conector que usa o modelo de conector de listagem do SDK requer apenas um único conjunto de parâmetros para pesquisa. Em alguns casos, pode ser necessário definir mais de um critério de pesquisa se o algoritmo de travessia exigir a separação do processamento de itens usando filas diferentes, por exemplo.

Nesse caso, você tem a opção de definir vários conjuntos de parâmetros de pesquisa. Comece especificando os nomes dos conjuntos de parâmetros usando repository.traversers. Para cada nome de atravessador definido, forneça o arquivo de configuração com os parâmetros na tabela acima substituindo t1 pelo nome dele. Isso cria um conjunto de parâmetros de pesquisa para cada atravessador definido.

Checkpoints

Um checkpoint é útil para rastrear o estado de uma travessia incremental.

Configuração Parâmetro
Diretório de checkpoint connector.checkpointDirectory=/path/to/checkpoint

Especifica o caminho para o diretório local a ser usado para os checkpoints de travessia incremental e completa.

Uploads de conteúdo

O conteúdo do item é enviado para o Cloud Search com o item quando o tamanho do conteúdo não excede o limite especificado. Se o tamanho do conteúdo exceder o limite, o upload do conteúdo será feito separadamente dos metadados e dados estruturados do item.

Configuração Parâmetro
Limite de conteúdo api.contentUploadThresholdBytes=bytes

O limite para o conteúdo que determina se ele é enviado "alinhado" com o item em vez de um upload separado.

O valor padrão é 100000 (~100 KB).

Contêineres

O modelo de conector completo usa um algoritmo que envolve o conceito de alternância de fila temporária da fonte de dados para detectar registros excluídos no banco de dados. Isso significa que, em cada travessia completa, os registros buscados, que estão em uma nova fila, substituem todos os registros do Cloud Search indexados na travessia anterior, que estão em uma fila antiga.

Configuração Parâmetro
Tag de nome do contêiner traverse.queueTag=instance

Para executar várias instâncias do conector em paralelo e indexar um repositório de dados comum (em diferentes repositórios ou em partes separadas de um repositório de dados comum) sem interferir entre si, atribua uma tag de nome de contêiner exclusiva a cada execução do conector. Uma tag de nome exclusiva impede que uma instância do conector exclua os registros de outra.

A tag de nome é anexada ao ID da fila de alternância do conector de travessia completa.

Desativar detecção de exclusão traverse.useQueues=true|false

Indica se o conector usa a lógica de alternância da fila para detecção de exclusão.

O valor padrão é true, que especifica o uso das filas.

Observação: esse parâmetro de configuração só é aplicável aos conectores que implementam o modelo FullTraversalConnector.

Política de lote

O SDK é compatível com uma política de lote que permite realizar as seguintes ações:

  • Solicitações em lote
  • Especificar o número de solicitações em uma fila em lote
  • Gerenciar lotes de execução simultânea
  • Limpar solicitações em lote

O SDK agrupa as solicitações do conector para acelerar a capacidade durante os uploads. O acionador do SDK para fazer upload de um lote de solicitações é determinado pelo número de solicitações ou pelo tempo limite, o que ocorrer primeiro. Por exemplo, se o tempo de atraso do lote tiver expirado sem que o tamanho do lote seja atingido ou se o número de itens do tamanho do lote for atingido antes do término do tempo de atraso, o upload em lote será acionado.

Configuração Parâmetro
Solicitações em lote batch.batchSize=batchSize

Agrupar solicitações em lote. O valor padrão é 10.

Número de solicitações em uma fila de lote batch.maxQueueLength=maxQueueLength

Número máximo de solicitações em uma fila de lote para execução. O valor padrão é 1000.

Execução simultânea de lotes batch.maxActiveBatches=maxActiveBatches

Número de lotes de execução simultânea permitidos. O valor padrão é 20.

Limpar solicitações em lote automaticamente batch.maxBatchDelaySeconds=maxBatchDelay

Número de segundos de espera antes que as solicitações em lote sejam limpas automaticamente. O valor padrão é 5.

Limpar solicitações em lote no encerramento batch.flushOnShutdown=true|false

Apague as solicitações em lote durante o encerramento do serviço. O valor padrão é true

Gerenciadores de exceções

Os parâmetros dos gerenciadores de exceções determinam como o atravessador prossegue depois de encontrar uma exceção.

Configuração Parâmetro
Instrução de atravessador em caso de erro traverse.exceptionHandler=exceptions

Como o atravessador proceder depois que uma exceção for lançada. Os valores válidos são:

  • 0: sempre cancela a travessia depois de encontrar uma exceção.
  • num_exceptions (por exemplo, 10): cancelar depois que o atravessador encontrar a num_exceptions especificada.

    O valor padrão é 0 (sempre cancelar em caso de erro).

  • ignore: ignora o erro
Tempo de espera entre as exceções abortExceptionHander.backoffMilliSeconds=backoff

Tempo de espera em milissegundos para aguardar entre as exceções detectadas do gerenciador (normalmente usado ao percorrer um repositório). O valor padrão é 10.