Cada conector tiene un archivo de configuración asociado que contiene los parámetros que usa el conector, como el ID de tu repositorio. Los parámetros se definen como pares clave-valor, como api.sourceId=1234567890abcdef
.
El SDK de Google Cloud Search contiene varios parámetros de configuración proporcionados por Google que usan diferentes conectores. De los parámetros de configuración proporcionados por Google, solo se requieren los parámetros de Acceso a la fuente de datos para definir en el archivo de configuración. No es necesario que vuelvas a definir los parámetros que proporciona Google en tu archivo de configuración a menos que quieras anular sus valores predeterminados.
En esta referencia, se describen los parámetros de configuración proporcionados por Google.
Ejemplo de archivo de configuración
En el siguiente ejemplo, se muestra un archivo de configuración de identidad con pares clave-valor de parámetros.
# # 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 establecidos de forma habitual
En esta sección, se enumeran los parámetros de configuración de configuración común obligatorios y opcionales. Si no cambias los valores de los parámetros opcionales, el conector usará los valores predeterminados que proporciona el SDK.
Acceso a la fuente de datos
En la siguiente tabla, se enumeran todos los parámetros que deben aparecer en un archivo de configuración. Los parámetros que uses dependerán del tipo de conector que compiles (conector de contenido o de identidad).
Parámetro de configuración | Parámetro |
---|---|
ID de la fuente de datos | api.sourceId=1234567890abcdef
Un conector requiere este parámetro para identificar la ubicación de tu repositorio. Puedes obtener este valor cuando agregas una fuente de datos a la búsqueda. Este parámetro debe estar en los archivos de configuración del conector. |
ID de la fuente de identidad | api.identitySourceId=0987654321lmnopq
Los conectores de identidad requieren este parámetro para identificar la ubicación de una fuente de identidad externa. Ya obtuviste este valor cuando asignaste identidades de usuario en Cloud Search. Este parámetro debe estar en todos los archivos de configuración del conector de identidad. |
Archivo de claves privadas de la cuenta de servicio | api.serviceAccountPrivateKeyFile=./PrivateKey.json
Este parámetro contiene la clave privada necesaria para acceder al repositorio. Obtén este valor cuando configuraste el acceso a la API de REST de Google Cloud Search. Este parámetro debe estar en todos los archivos de configuración. |
ID de cuenta de servicio | api.serviceAccountId=123abcdef4567890
Este parámetro especifica el ID de la cuenta de servicio. Solo se permite el valor predeterminado de string vacía cuando el archivo de configuración especifica un parámetro de archivo de clave privada. Este parámetro es obligatorio si tu archivo de claves privadas no es una clave JSON. |
ID de la cuenta de Google Workspace | api.customerId=123abcdef4567890
Este parámetro especifica el ID de la cuenta empresarial de Google Workspace. Ya obtuviste este valor cuando asignaste identidades de usuario en Cloud Search. Este parámetro es obligatorio cuando se sincronizan usuarios mediante un conector de identidad. |
URL raíz | api.rootUrl=baseURLPath
Este parámetro especifica la ruta de URL de la base del servicio de indexación. El valor predeterminado para este parámetro es una string vacía que se convierte en |
Programación de barridos
Los parámetros de programación determinan la frecuencia con la que el conector espera entre recorridos.
Parámetro de configuración | Parámetro |
---|---|
Recorrido completo al inicio del conector | schedule.performTraversalOnStart=true|false
El conector realiza un recorrido completo en el inicio del conector, en lugar de esperar a que venza el primer intervalo. El valor predeterminado es |
Recorrido completo luego del intervalo | schedule.traversalIntervalSecs=intervalInSeconds
El conector realiza un recorrido completo después de un intervalo especificado. Especifica el
intervalo entre recorridos en segundos. El valor predeterminado es |
Salir después de un solo recorrido | connector.runOnce=true|false
El conector ejecuta un recorrido completo una vez y, luego, sale. Este parámetro solo se debe establecer en |
Recorrido incremental después de un intervalo | schedule.incrementalTraversalIntervalSecs=intervalInSeconds
El conector realiza un recorrido incremental después de un intervalo especificado.
Especifica el intervalo entre recorridos en segundos. El valor predeterminado es |
Intervalos de cola de sondeo programados | schedule.pollQueueIntervalSecs=interval_in_seconds
El intervalo entre los intervalos de la cola de sondeos programados (en segundos). Solo lo usa un conector de recorrido de lista. El valor predeterminado es |
Listas de control de acceso
El conector controla el acceso a los elementos mediante las LCA. Varios parámetros te permiten proteger el acceso de los usuarios a los registros indexados con LCA.
Si tu repositorio tiene información de LCA individuales asociada con cada elemento, sube toda la información de LCA para controlar el acceso a los elementos dentro de Cloud Search. Si tu repositorio proporciona información parcial o nula de LCA, puedes proporcionar información predeterminada de LCA en los siguientes parámetros, que el SDK proporciona al conector.
Parámetro de configuración | Parámetro |
---|---|
Modo de LCA | defaultAcl.mode=mode
Determina cuándo aplicar la LCA predeterminada. Valores válidos:
El modo predeterminado es |
LCA pública predeterminada | defaultAcl.public=true|false
La LCA predeterminada utilizada para todo el repositorio se establece en el acceso de dominio público.
El valor predeterminado es |
Lectores comunes del grupo de LCA | defaultAcl.readers.groups=google:group1@mydomain.com,
group2 |
Lectores comunes de LCA | defaultAcl.readers.users=user1, user2,
google:user3@mydomain.com |
Lectores comunes del grupo de LCA denegadas | defaultAcl.denied.groups=group3 |
Lectores comunes de LCA denegadas | defaultAcl.denied.users=user4, user5 |
Acceso de dominio completo | Para especificar que todos los usuarios del dominio puedan acceder de forma pública a cada registro indexado, configura los siguientes parámetros con valores:
|
LCA común definida | A fin de especificar una LCA para cada registro del repositorio de datos, configura todos los siguientes valores de parámetros:
|
Parámetros de configuración de metadatos
Algunos de los metadatos de elementos se pueden configurar. Los conectores pueden establecer campos de metadatos configurables durante la indexación. Si el conector no establece un campo, los parámetros del archivo de configuración se usan para hacerlo.
El archivo de configuración tiene una serie de parámetros de configuración de metadatos con nombre que se indican mediante un sufijo .field
, como itemMetadata.title.field=movieTitle
. Si hay un valor para estos parámetros, se usa con el fin de configurar el campo de metadatos. Si no hay un valor para el parámetro de metadatos con nombre, los metadatos se configuran mediante un parámetro con el sufijo .defaultValue
.
En la siguiente tabla, se muestran los parámetros de configuración de los metadatos.
Parámetro de configuración | Parámetro |
Título | itemMetadata.title.field=movieTitle
itemMetadata.title.defaultValue=
Título del artículo Si title.field no se establece en un valor, se usa el valor de title.defaultValue .
|
URL del repositorio de código fuente | itemMetadata.sourceRepositoryUrl.field=url
itemMetadata.sourceRepositoryUrl.defaultValue=https://www.imdb.com/title/tt0031381/
La URL del elemento que se usa en los resultados de la búsqueda. Puedes configurar el defaultValue a fin de que contenga una URL para todo el repositorio, por ejemplo, si tu representante es un archivo CSV y solo hay una URL para cada elemento. Si sourceRepositoryUrl.field no se establece en un valor, se usa el valor de sourceRepositoryUrl.defaultValue .
|
Nombre del contenedor | itemMetadata.containerName.field=containerName
itemMetadata.containerName.defaultValue=myDefaultContainerName
El nombre del contenedor del elemento, como el nombre de una carpeta o un directorio del sistema de archivos. Si containerName.field no se establece en un valor, se usa el valor de containerName.defaultValue .
|
Tipo de objeto | itemMetadata.objectType.field=type itemMetadata.objectType.defaultValue=
El tipo de objeto que usa el conector, como se define en el esquema. El conector no indexará ningún dato estructurado si no se especifica esta propiedad. Si no se establece objectType.field en un valor, se usa el valor de objectType.defaultValue .
|
Fecha de creación | itemMetadata.createTime.field=releaseDate
itemMetadata.createTime.defaultValue=1940-01-17
Es la marca de tiempo de creación del documento. Si createTime.field no se establece en un valor, se usa el valor de createTime.defaultValue .
|
Fecha de actualización | itemMetadata.updateTime.field=releaseDate
itemMetadata.updateTime.defaultValue=1940-01-17
La marca de tiempo de la última modificación del elemento. Si updateTime.field no se establece en un valor, se usa el valor de updateTime.defaultValue .
|
Idioma del contenido | itemMetadata.contentLanguage.field=languageCode
itemMetadata.contentLanguage.defaultValue=
El idioma del contenido de los documentos que se indexan. Si contentLanguage.field no se establece en un valor, se usa el valor de contentLanguage.defaultValue .
|
Tipo de MIME | itemMetadata.mimeType.field=mimeType
itemMetadata.mimeType.defaultValue=
El tipo MIME original de ItemContent.content en el repositorio de código fuente. La longitud máxima es de 256 caracteres. Si mimeType.field no se establece en un valor, se usa el valor de mimeType.defaultValue .
|
Metadatos de calidad de la búsqueda | itemMetadata.searchQualityMetadata.quality.field=quality
itemMetadata.searchQualityMetadata.quality.defaultValue=
Una indicación de la calidad del elemento, que se utiliza para influir en la calidad de la búsqueda. El valor debe estar entre 0.0 (calidad más baja) y 1.0 (calidad más alta). El valor predeterminado es 0.0. Si quality.field no se establece en un valor, se usa el valor de quality.defaultValue .
|
Hash | itemMetadata.hash.field=hash
itemMetadata.hash.defaultValue=f0fda58630310a6dd91a7d8f0a4ceda2
Valor de hash que proporciona el llamador de la API. Esto se puede usar con el método items.push para calcular el estado modificado. La longitud máxima es de 2,048
caracteres. Si hash.field no se establece en un valor, se usa el valor de hash.defaultValue .
|
Formatos de fecha y hora
Los formatos de fecha y hora especifican los formatos esperados en los atributos de metadatos. Si el archivo de configuración no contiene este parámetro, se usan los valores predeterminados. La siguiente tabla muestra este parámetro.
Parámetro de configuración | Parámetro |
Formatos de fecha y hora adicionales | structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX
Una lista de patrones java.time.format.DateTimeFormatter adicionales separados por punto y coma. Los patrones se usan cuando se analizan valores de string para cualquier fecha o campo de fecha y hora en los metadatos o el esquema. El valor predeterminado es una lista vacía, pero siempre se admiten los formatos RFC 3339 y RFC 1123.
|
Datos estructurados
La API de Cloud Search Indexing proporciona un servicio de esquema que puedes usar para personalizar la forma en que Cloud Search indexa y entrega tus datos. Si usas un esquema de repositorio local, debes especificar el nombre del esquema local de datos estructurados.
Parámetro de configuración | Parámetro |
---|---|
Nombre del esquema local | structuredData.localSchema=mySchemaName
El nombre del esquema se lee de la fuente de datos y se usa para los datos estructurados del repositorio. El valor predeterminado es una string vacía. |
Calidad del contenido y la búsqueda
En el caso de los repositorios que incluyen contenido basado en registros o campos (como CRM, CVS o base de datos), el SDK permite el formato HTML automático para los campos de datos. El conector define los campos de datos al comienzo de la ejecución del conector y, luego, usa una plantilla de contenido para formatear cada registro de datos antes de subirlo a Cloud Search.
La plantilla de contenido define la importancia de cada valor de campo para la búsqueda.
El campo HTML <title>
es obligatorio y está definido con la prioridad más alta. Puedes designar los niveles de importancia de calidad de búsqueda alto, medio o bajo para todos los demás campos de contenido. Cualquier campo de contenido no definido en una categoría específica se establece con una prioridad baja de forma predeterminada.
Parámetro de configuración | Parámetro |
---|---|
Título de HTML de contenido | contentTemplate.templateName.title=myTitleField
El título del contenido HTML y el campo de mayor calidad de búsqueda. Este parámetro solo es obligatorio si usas una plantilla de contenido HTML. El valor predeterminado es una string vacía. |
Alta calidad de búsqueda para los campos de contenido | contentTemplate.templateName.quality.high=hField1,hField2
Campos de contenido con prioridad de búsqueda alta. El valor predeterminado es una string vacía. |
Calidad media de búsqueda para los campos de contenido | contentTemplate.templateName.quality.medium=mField1,mField2
Campos de contenido con una prioridad de búsqueda media. El valor predeterminado es una string vacía. |
Baja calidad de búsqueda para los campos de contenido | contentTemplate.templateName.quality.low=lField1,lField2
Campos de contenido con prioridad de búsqueda baja El valor predeterminado es una string vacía. |
Campos de contenido sin especificar | contentTemplate.templateName.unmappedColumnsMode=value
Cómo maneja el conector los campos de contenido no especificados. Estos son los valores válidos:
|
Incluir nombres de campos en la plantilla HTML | contentTemplate.templateName.includeFieldName=true|false
Especifica si se deben incluir los nombres de los campos junto con los datos del campo en la plantilla HTML. El valor predeterminado es |
Parámetros establecidos de forma inusual
Rara vez necesitarás configurar los parámetros que se enumeran en esta sección. La configuración predeterminada de los parámetros se establece para un rendimiento óptimo. Google no recomienda configurar estos parámetros con valores diferentes de sus valores predeterminados sin requisitos específicos dentro de tu repositorio.
Configuración de proxy
El SDK te permite configurar un conector para que use un proxy para las conexiones salientes.
Los parámetros transport.proxy.hostname
y transport.proxy.port
son obligatorios para habilitar el transporte a través de un proxy. Es posible que los otros parámetros sean obligatorios
si tu proxy requiere autenticación o si opera a través del protocolo SOCKS en lugar de HTTP. Si no se configura transport.proxy.hostname
, el SDK no usará un proxy.
Parámetro de configuración | Parámetro |
---|---|
Nombre de host | transport.proxy.hostname=hostname
El nombre de host del servidor proxy. Este parámetro es obligatorio cuando se usa un proxy. |
Puerto | transport.proxy.port=port
El número de puerto del servidor proxy. Este parámetro es obligatorio cuando se usa un proxy. |
Tipo de proxy | transport.proxy.type=type
Es el tipo de proxy. Estos son los valores válidos:
El valor predeterminado es |
Nombre de usuario (Username) | transport.proxy.username=username
El nombre de usuario que se usará para construir un token de autorización de proxy. Este parámetro es opcional y solo se debe establecer si el proxy requiere autenticación. |
Contraseña (Password) | transport.proxy.password=password
La contraseña que se usará para construir un token de autorización de proxy. Este parámetro es opcional y solo se debe establecer si el proxy requiere autenticación. |
Desviadores
El SDK te permite especificar varios desviadores individuales para permitir recorridos paralelos de un repositorio de datos. Los conectores de plantillas del SDK usan esta función.
Parámetro de configuración | Parámetro |
---|---|
Tamaño del conjunto de subprocesos | traverse.threadPoolSize=size
Cantidad de subprocesos que crea el conector para permitir el procesamiento en paralelo. Un solo iterador recupera las operaciones en serie (por lo general, objetos RepositoryDoc), pero la API llama a los procesos en paralelo mediante esta cantidad de subprocesos. El valor predeterminado es |
Tamaño de partición | traverse.partitionSize=batchSize
Cantidad de El valor predeterminado es |
Solicitudes de sondeo del desviador
El núcleo de la cola de indexación de Cloud Search es una cola de prioridad que contiene una entrada para cada elemento que se sabe que existe. Un conector de fichas puede solicitar que se sondeen los elementos de la API de indexación. Una solicitud de encuesta obtiene las entradas de mayor prioridad de la cola de indexación.
La plantilla del conector de fichas del SDK usa los siguientes parámetros para definir los parámetros de sondeo.
Parámetro de configuración | Parámetro |
---|---|
Desviador de repositorios | repository.traversers=t1, t2, t3, ...
Crea uno o más desviadores individuales en los que t1, t2, t3 y ... es el nombre único de cada uno. Cada desviador nombrado tiene su propio conjunto de opciones de configuración que se identifican con el nombre único del desviador, como |
Fila que se sondeará | traverser.pollRequest.queue=mySpecialQueue
Nombra en cola que este desviador sondea. El valor predeterminado es una string vacía (implica "default"). |
traverser.t1.pollRequest.queue=mySpecialQueue
Cuando tienes varios desviadores, establece los estados del elemento para cada desviador (en el que t1, representa un desviador específico). |
|
Comportamiento de sondeo | traverser.pollRequest.limit=maxItems
Cantidad máxima de elementos que se mostrarán de una solicitud de sondeo.
El valor predeterminado es |
traverser.t1.pollRequest.limit=limit
Cuando tienes varios desviadores, establece los estados del elemento para cada desviador (en el que t1, representa un desviador específico). |
|
Estado del elemento | traverser.pollRequest.statuses=statuses
Los estados del elemento específico que consulta este desviador, en los que statuses puede ser cualquier combinación de |
traverser.t1.pollRequest.statuses=statusesForThisTraverser
Cuando tienes varios desviadores, establece los estados del elemento para cada desviador (en el que t1 representa un desviador específico). | |
Carga del host | traverser.hostload=threads
Cantidad máxima de subprocesos paralelos activos disponibles para el sondeo. El valor predeterminado es |
traverser.t1.hostload=threadsForThisTraverser
Cuando tienes varios desviadores, establece los estados del elemento para cada desviador (en el que t1 representa un desviador específico). |
|
Tiempo de espera | traverser.timeout=timeout
Valor de tiempo de espera para interrumpir este intento de sondeo de desviador. El valor predeterminado es |
traverser.t1.timeout=timeoutForThisTraverser
Cuando tienes varios desviadores, establece los estados del elemento para cada desviador (en el que t1 representa un desviador específico). |
|
traverser.timeunit=timeoutUunit
Las unidades de tiempo de espera. Los valores válidos son |
|
traverser.t1.timeunit=timeoutUnit
Cuando tienes varios desviadores, establece los estados del elemento para cada desviador (en el que t1 representa un desviador específico). |
En la mayoría de los casos, un conector que usa la plantilla del conector de fichas del SDK solo requiere un único conjunto de parámetros para el sondeo. En algunos casos, es posible que debas definir más de un criterio de sondeo si, por ejemplo, tu algoritmo de recorrido requiere separar el procesamiento de elementos con diferentes colas.
En este caso, tienes la opción de definir varios conjuntos de parámetros de sondeo. Primero, especifica los nombres de los conjuntos de parámetros con repository.traversers
. Para cada nombre de desviador definido, proporciona el archivo de configuración con los parámetros de la tabla anterior y reemplaza t1
por el nombre del desviador. Esto crea un conjunto de parámetros de sondeo para cada desviador definido.
Puntos de control
Un punto de control es útil para hacer un seguimiento del estado de un recorrido incremental.
Parámetro de configuración | Parámetro |
---|---|
Directorio de punto de control | connector.checkpointDirectory=/path/to/checkpoint
Especifica la ruta de acceso al directorio local que se usará para los puntos de control de recorrido incremental y de recorrido completo. |
Cargas de contenido
El contenido del elemento se sube a Cloud Search con el elemento cuando el tamaño del contenido no supera el umbral especificado. Si el tamaño del contenido supera el umbral, el contenido se sube por separado de los metadatos y los datos estructurados del elemento.
Parámetro de configuración | Parámetro |
---|---|
Umbral de contenido | api.contentUploadThresholdBytes=bytes
El umbral para el contenido que determina si se sube "en línea" con el elemento en lugar de usar una carga independiente. El valor predeterminado es |
Contenedores
La plantilla de conector completa usa un algoritmo que involucra el concepto de activación de una cola de fuente de datos temporal para detectar registros borrados en la base de datos. Esto significa que, en cada recorrido completo, los registros recuperados, que están en una cola nueva, reemplazan todos los registros de Cloud Search existentes indexados desde el recorrido anterior, que están en una cola anterior.
Parámetro de configuración | Parámetro |
---|---|
Etiqueta de nombre del contenedor | traverse.queueTag=instance
Para ejecutar varias instancias del conector en paralelo a fin de indexar un repositorio de datos común (ya sea en diferentes repositorios de datos o partes separadas de un repositorio de datos común) sin interferir entre sí, asigna una etiqueta personal de contenedor única a cada ejecución del conector. Una etiqueta de identificación única evita que una instancia de conector borre los registros de otra. La etiqueta personal se agrega al ID de la cola de activación del conector de recorrido completo. |
Inhabilitar la detección de eliminaciones | traverse.useQueues=true|false
Indica si el conector usa la lógica de activación de la cola para la detección de eliminaciones. El valor predeterminado es Nota: Este parámetro de configuración solo se aplica a los conectores que implementan la plantilla |
Política de lotes
El SDK admite una política de lotes que te permite realizar las siguientes acciones:
- Utiliza solicitudes por lotes
- Especifica la cantidad de solicitudes en una cola de lotes
- Administra lotes que se ejecutan en simultáneo
- Cómo vaciar las solicitudes en lotes
El SDK agrupa en lotes las solicitudes del conector para acelerar la capacidad de procesamiento durante las cargas. El activador del SDK para subir un lote de solicitudes se basa en la cantidad de solicitudes o en el tiempo de espera, lo que ocurra primero. Por ejemplo, si el tiempo de demora por lotes venció y no se alcanzó el tamaño del lote, o si se alcanza la cantidad de elementos del tamaño del lote antes de que venza el tiempo de demora, se activa la carga por lotes.
Parámetro de configuración | Parámetro |
---|---|
Utiliza solicitudes por lotes | batch.batchSize
Agrupa las solicitudes. El valor predeterminado es |
Cantidad de solicitudes en una cola por lotes | batch.maxQueueLength=maxQueueLength
Cantidad máxima de solicitudes en una cola por lotes para su ejecución.
El valor predeterminado es |
Ejecución simultánea de lotes | batch.maxActiveBatches=maxActiveBatches
Cantidad de lotes de ejecución simultánea permitidos.
El valor predeterminado es |
Cómo vaciar automáticamente las solicitudes en lotes | batch.maxBatchDelaySeconds=maxBatchDelay
Cantidad de segundos que se debe esperar antes de que las solicitudes en lotes se limpien automáticamente. El valor predeterminado es |
Limpiar las solicitudes en lotes durante el cierre | batch.flushOnShutdown=true|false
Limpia las solicitudes por lotes durante el cierre del servicio.
El valor predeterminado es |
Controladores de excepciones
Los parámetros de los controladores de excepciones determinan cómo avanza el desviador después de encontrar una excepción.
Parámetro de configuración | Parámetro |
---|---|
Instrucción del desviador en caso de error | traverse.exceptionHandler=exceptions
Cómo debe proceder el desviador después de que se arroja una excepción Los valores válidos son los siguientes:
|
Tiempo de espera entre excepciones | abortExceptionHander.backoffMilliSeconds=backoff
Tiempo de retirada en milisegundos que se debe esperar entre las excepciones del controlador detectadas (por lo general, se usa cuando se recorre un repositorio). El valor predeterminado es |