Share via


Creación o actualización del indexador (API REST de versión preliminar)

Se aplica a: 2023-07-01-Preview, 2021-04-30-Preview, 2020-06-30-Preview

Importante

2023-07-01-Preview (sin cambios).

2021-04-30-Preview agrega compatibilidad con identidad administrada para claves de cifrado y caché de enriquecimiento:

  • "storageConnectionString" acepta un identificador de recurso para una conexión de identidad administrada asignada por el sistema a Azure Storage. Esta propiedad está en "caché". No se admite la identidad administrada asignada por el usuario.
  • "identity" acepta una identidad administrada asignada por el usuario.

2020-06-30-Preview agrega:

Un indexador automatiza la indexación de orígenes de datos admitidos mediante la conexión a un origen de datos predefinido, la recuperación y serialización de datos y su paso a un servicio de búsqueda para la ingesta de datos. Para el enriquecimiento con ia de imágenes y texto no estructurado, los indizadores también pueden aceptar un conjunto de aptitudes que agrega procesamiento de imágenes y lenguaje natural.

Puede usar POST o PUT en una solicitud de creación. Para cualquiera de ellos, el cuerpo de la solicitud proporciona la definición del objeto.

POST https://[service name].search.windows.net/indexers?api-version=[api-version]
    Content-Type: application/json  
    api-key: [admin key]  

Para las solicitudes de actualización, use PUT y especifique el nombre del indexador en el URI.

PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=[api-version]
    Content-Type: application/json  
    api-key: [admin key]    

HTTPS es necesario para todas las solicitudes de servicio. Si el indexador no existe, se crea. Si ya existe, se actualiza a la nueva definición, pero debe emitir una solicitud Run Indexer si desea ejecutar el indexador.

La creación de un indexador la agrega al servicio de búsqueda y la ejecuta. Si la solicitud se realiza correctamente, el índice se rellenará con contenido que se puede buscar desde el origen de datos.

La actualización de un indexador no la ejecuta automáticamente, pero en función de las modificaciones y del origen de datos asociado, es posible que sea necesario restablecer y volver a ejecutar. Al actualizar un indexador existente, toda la definición se reemplaza por el contenido del cuerpo de la solicitud. En general, el mejor patrón que se debe usar para las actualizaciones es recuperar la definición del indexador con get, modificarla y, a continuación, actualizarla con PUT.

La configuración del indexador varía en función del tipo de origen de datos. Para obtener una guía específica de la plataforma de datos sobre cómo crear indizadores, comience con la introducción a los indizadores, que incluye la lista completa de artículos relacionados.

Nota

El número máximo de indexadores que puede crear varía según el plan de tarifa. Para más información, consulte Límites de servicio para Azure AI Search.

Parámetros de identificador URI

Parámetro Descripción
nombre del servicio Necesario. Establézcalo en el nombre único definido por el usuario del servicio de búsqueda.
nombre del indexador Obligatorio en el URI si usa PUT. El nombre debe estar en minúsculas, empezar con una letra o un número, no tener barras diagonales ni puntos y tener menos de 128 caracteres. Después de iniciar el nombre con una letra o un número, el resto del nombre puede incluir cualquier letra, número y guiones, siempre y cuando los guiones no sean consecutivos.
api-version Necesario. La versión preliminar actual es 2023-07-01-Preview. Consulte Versiones de API para obtener más versiones.

Encabezados de solicitud

En la siguiente tabla se describen los encabezados de solicitud obligatorios y opcionales.

Campos Descripción
Content-Type Necesario. Establézcalo en application/json
api-key Opcional si usa roles de Azure y se proporciona un token de portador en la solicitud; de lo contrario, se requiere una clave. Una clave de API es una cadena única generada por el sistema que autentica la solicitud en el servicio de búsqueda. Las solicitudes de creación deben incluir un api-key encabezado establecido en la clave de administración (en lugar de una clave de consulta). Consulte Conexión a Azure AI Search mediante la autenticación de claves para más información.

Cuerpo de la solicitud

Un origen de datos, un índice y un conjunto de aptitudes forman parte de la definición de un indexador, pero cada uno de ellos es un componente independiente que se puede usar en diferentes combinaciones. Por ejemplo, puede usar el mismo origen de datos con varios indexadores, o el mismo índice con varios indexadores, o escribir varios indexadores en un índice único.

El siguiente JSON es una representación de alto nivel de las partes principales de la definición.

{   
    "name" : (optional on PUT; required on POST) "Name of the indexer",  
    "description" : (optional) "Anything you want, or nothing at all", 
    "dataSourceName" : (required) "Name of an existing data source",  
    "targetIndexName" : (required) "Name of an existing index",  
    "skillsetName" : (required for AI enrichment) "Name of an existing skillset",
    "cache":  { ... },
    "schedule" : (optional but runs once immediately if unspecified) { ... },  
    "parameters" : (optional) {
        "batchSize": null,
        "maxFailedItems": 0,
        "maxFailedItemsPerBatch": 0,
        "base64EncodeKeys": null,
        "configuration": { }
    },
    "fieldMappings" : (optional) { ... },
    "outputFieldMappings" : (required for AI enrichment) { ... },
    "encryptionKey":(optional) { },
    "disabled" : (optional) Boolean value indicating whether the indexer is disabled. False by default.
}  

La solicitud contiene las siguientes propiedades:

Propiedad Descripción
name Necesario. El nombre debe estar en minúsculas, empezar con una letra o un número, no tener barras diagonales ni puntos y tener menos de 128 caracteres. Después de iniciar el nombre con una letra o un número, el resto del nombre puede incluir cualquier letra, número y guiones, siempre y cuando los guiones no sean consecutivos.
description Opcional. Descripción del indexador.
dataSourceName Necesario. Nombre de un origen de datos existente que proporciona información de conexión y otras propiedades.
targetIndexName Necesario. Nombre de un índice existente.
skillsetName Se requiere para el enriquecimiento con IA. Nombre de un conjunto de aptitudes existente.
cache Opcional para el enriquecimiento con IA, permite reutilizar documentos sin cambios.
schedule Opcional, pero se ejecuta una vez inmediatamente si no se especifica.
parameters Opcional. Propiedades para modificar el comportamiento en tiempo de ejecución.
fieldMappings Opcional. Se usa cuando los campos de origen y destino tienen nombres diferentes.
outputFieldMappings Se requiere para el enriquecimiento con IA. Asigna la salida de un conjunto de aptitudes a un índice o proyección.
encryptionKey Opcional. Se usa para cifrar los datos del indexador en reposo con sus propias claves, administradas en azure Key Vault. Para más información, consulte Cifrado de Azure AI Search mediante claves administradas por el cliente en Azure Key Vault.
deshabilitado Opcional. Valor booleano que indica si el indexador está deshabilitado. El valor predeterminado es false.

Response

Para obtener una solicitud correcta: "201 Creado".

Ejemplos

Ejemplo: indexador basado en texto con programación y parámetro

En este ejemplo se crea un indexador que copia datos de la tabla a la que hace referencia el order-sds origen de datos al orders-idx índice según una programación que comienza el 1 de enero de 2022 UTC y se ejecuta cada hora. Cada invocación de indexador se realizará correctamente si no se logra indexar más de cinco elementos en cada lote y no más de 10 elementos en total. Las asignaciones de campos proporcionan una ruta de acceso de datos cuando los nombres de campo y los tipos no coinciden.

{
    "name" : "myindexer",  
    "description" : "a cool indexer",  
    "dataSourceName" : "orders-ds",  
    "targetIndexName" : "orders-idx", 
    "fieldMappings" : [
      {
          "sourceFieldName" : "content",
          "targetFieldName" : "sourceContent"
      }
    ], 
    "schedule" : { "interval" : "PT1H", "startTime" : "2022-01-01T00:00:00Z" },  
    "parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 5 }  
}

Ejemplo: indexador de conjunto de aptitudes

En este ejemplo se muestra un enriquecimiento con IA, indicado por la referencia a un conjunto de aptitudes y outputFieldMappings que asigna salidas de aptitud a campos de un índice de búsqueda. Los conjuntos de aptitudes son recursos de alto nivel y se definen por separado.

Novedad de esta versión preliminar y aplicable solo a los conjuntos de aptitudes, puede especificar la propiedad de caché para reutilizar documentos que no se ven afectados por los cambios en la definición del conjunto de aptitudes.

{
  "name":"demo-indexer",	
  "dataSourceName" : "demo-data",
  "targetIndexName" : "demo-index",
  "skillsetName" : "demo-skillset",
  "cache" : 
    {
      "storageConnectionString" : "DefaultEndpointsProtocol=https;AccountName=<storage-account-name>;AccountKey=<storage-account-key>;EndpointSuffix=core.windows.net",
      "enableReprocessing": true
    },
  "fieldMappings" : [ ],
  "outputFieldMappings" : 
  [
    {
        "sourceFieldName" : "/document/organizations", 
        "targetFieldName" : "organizations"
    },
  ],
  "parameters":
  {
  	"maxFailedItems":-1,
  	"configuration": 
    {
    "dataToExtract": "contentAndMetadata",
    "imageAction": "generateNormalizedImages"
    }
  }
}

Ejemplo: Caché de enriquecimiento con una conexión de identidad administrada

En este ejemplo se muestra el formato cadena de conexión al usar Azure Active Directory para la autenticación. El servicio de búsqueda debe configurarse para usar una identidad administrada. La identidad debe tener permisos de "Colaborador de datos de Storage Blob" para que pueda escribir en la memoria caché. El cadena de conexión es el identificador de recurso único de la cuenta de almacenamiento y debe incluir el contenedor usado para almacenar el enriquecimiento almacenado en caché.

{
  "name":"demo-indexer",
  "dataSourceName" : "demodata-ds",
  "targetIndexName" : "demo-index",
  "skillsetName" : "demo-skillset",
  "cache" : 
    {
      "storageConnectionString" : "ResourceId=/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/<container-name>;",
      "enableReprocessing": true
    },
  "fieldMappings" : [  ],
  "outputFieldMappings" :  [  ],
  "parameters": {  }
}

Definiciones

Vínculo Descripción
cache Configura el almacenamiento en caché para el enriquecimiento de IA y la ejecución del conjunto de aptitudes.
encryptionKey Configura una conexión a Azure Key Vault para el cifrado administrado por el cliente.
fieldMappings Asignaciones de campos de origen a destino para los campos que no coinciden por nombre y tipo.
outputFieldMappings Asigna nodos de un documento enriquecido a campos de un índice. Obligatorio si usa conjuntos de aptitudes.
parameters Configura un indexador. Los parámetros incluyen parámetros generales y parámetros específicos del origen.
schedule Especifica el intervalo y la frecuencia de ejecución programada del indexador.

caché (versión preliminar)

La indexación incremental es la capacidad de reutilizar documentos enriquecidos en la memoria caché al procesar un conjunto de aptitudes. El escenario más común es la reutilización de OCR o análisis de imágenes de archivos de imagen, lo que puede ser costoso y lento para procesar.

"cache" : 
  {
    "storageConnectionString" : "<YOUR-STORAGE-ACCOUNT-CONNECTION-STRING>",
    "enableReprocessing": true
  }

El objeto de caché tiene propiedades obligatorias y opcionales.

Propiedad Descripción
storageConnectionString Necesario. Especifica la cuenta de almacenamiento usada para almacenar en caché los resultados intermedios. Con la cuenta que proporcione, el servicio de búsqueda creará un contenedor de blobs con el prefijo ms-az-search-indexercache y se completará con un GUID único para el indexador. Debe establecerse en un cadena de conexión de acceso completo que incluya una clave o el identificador de recurso único de la cuenta de almacenamiento para las solicitudes que se autentican mediante Azure AD.

Para autenticarse a través de Azure AD, el servicio de búsqueda debe configurarse para usar una identidad administrada y esa identidad debe tener el permiso "Colaborador de datos de Storage Blob".
enableReprocessing Opcional. Propiedad booleana (true de forma predeterminada) para controlar el procesamiento de los documentos entrantes ya representados en la memoria caché. Cuando true (valor predeterminado), los documentos que ya están en la memoria caché se vuelven a procesar al volver a ejecutar el indexador, suponiendo que la actualización de aptitudes afecte a ese documento. Cuando false, los documentos existentes no se vuelven a procesar, priorizando eficazmente el contenido entrante nuevo y entrante sobre el contenido existente. Solo debe establecer enableReprocessing en false de forma temporal. Para garantizar la coherencia en el corpus, enableReprocessing debe ser true la mayor parte del tiempo, para asegurarse de que todos los documentos, tanto nuevos como existentes, sean válidos según la definición del conjunto de aptitudes actual.
ID Solo lectura. Se genera una vez creada la memoria caché. ID es el identificador del contenedor dentro de la cuenta de almacenamiento que se usará como caché para este indexador. Esta caché será única para este indexador y, si el indexador se elimina y se vuelve a crear con el mismo nombre, se volverá a generar ID. No ID se puede establecer, siempre lo genera el servicio.

schedule

Un indizador puede especificar opcionalmente una programación. Sin una programación, el indexador se ejecuta inmediatamente cuando se envía una de las siguientes solicitudes: conectar con, rastreo e indexación el origen de datos. En algunos escenarios, incluidos los trabajos de indexación de larga duración, se usan programaciones para ampliar la ventana de procesamiento más allá del máximo de 24 horas. Si existe una programación, el indizador se ejecuta de forma periódica de acuerdo con esta. El programador está integrado; no puede usar un programador externo. Una programación tiene los siguientes atributos:

  • intervalo: obligatorio. Valor de duración que especifica un intervalo o período durante el que se ejecuta el indizador. El intervalo mínimo permitido es de cinco minutos y el máximo de un día. Debe tener el formato de un valor "dayTimeDuration" XSD (subconjunto restringido de un valor de duración ISO 8601 ). El patrón para esto es: "P[nD][T[nH][nM]]". Ejemplos: PT15M por cada 15 minutos, PT2H por cada 2 horas.

  • startTime: opcional. Valor de fecha y hora UTC que especifica cuándo debería empezar a ejecutarse el indexador.

Nota

Si un indexador se establece en una programación determinada pero se produce repetidamente un error en el mismo documento una y otra vez cada vez se ejecuta, el indexador comenzará a ejecutarse en un intervalo menos frecuente (hasta un máximo de al menos una vez cada 24 horas) hasta que vuelva a avanzar correctamente. Si cree que solucionó el problema que hacía que el indexador se bloqueara en un punto determinado, puede realizar una ejecución a petición del indexador y, si avanza correctamente, el indexador volverá a su intervalo de programación establecido.

parámetros

De forma opcional, un indexador puede usar parámetros de configuración que modifiquen el comportamiento del tiempo de ejecución. Los parámetros de configuración están delimitados por comas en la solicitud del indexador.

{
  "name" : "my-blob-indexer-for-cognitive-search",
  ... other indexer properties
  "parameters" : { 
        "batchSize": null,
        "maxFailedItems": 0,
        "maxFailedItemsPerBatch": 0,
        "base64EncodeKeys": null,
        "configuration" : { 
            "parsingMode" : "json", 
            "indexedFileNameExtensions" : ".json, .jpg, .png", 
            "imageAction" : "generateNormalizedImages", 
            "dataToExtract" : "contentAndMetadata" } }
}

Parámetros generales para todos los indexadores

Parámetro Tipos y valores permitidos Uso
"batchSize" Entero
El valor predeterminado es específico del origen (1000 para Azure SQL Database y Azure Cosmos DB; 10 para Azure Blob Storage)
Especifica el número de elementos que se leen desde el origen de datos y se indexan como un único lote para mejorar el rendimiento.
"maxFailedItems" Entero
El valor predeterminado es 0.
Número de errores que se tolera antes de que la ejecución del indexador se considere un error. Se establece en -1 si no quiere que los errores detengan el proceso de indización. Puede recuperar información sobre elementos erróneos mediante Get Indexer Status (Obtener estado del indexador).
"maxFailedItemsPerBatch" Entero
El valor predeterminado es 0.
Número de errores que se tolera en cada lote antes de que la ejecución del indexador se considere un error. Se establece en -1 si no quiere que los errores detengan el proceso de indización.
"base64EncodeKeys" Boolean
El valor predeterminado es true.
Los valores válidos son null, true o false. Cuando se establece en false, el indexador no codificará automáticamente los valores del campo designado como clave de documento. Establecer esta propiedad elimina la necesidad de especificar una función de asignación que codifica los valores de clave base64 (como guiones) que no son válidos en una clave de documento.

Parámetros de configuración de blobs

Varios parámetros son exclusivos de un indexador determinado, como la indexación de blobs de Azure.

Parámetro Tipos y valores permitidos Uso
"parsingMode" String
"text"
"delimitedText"
"json"
"jsonArray"
"jsonLines"
En los blobs de Azure, se establece en text para mejorar el rendimiento de la indexación de los archivos de texto sin formato en Blob Storage.
En los blobs de CSV, se establece en delimitedText cuando los blobs son archivos sin formato de CSV.
En el caso de los blobs JSON, establezca en json para extraer contenido estructurado o para jsonArray extraer elementos individuales de una matriz como documentos independientes en Azure AI Search. Use jsonLines para extraer entidades JSON individuales, separadas por una nueva línea, como documentos independientes en Azure AI Search.
"excludedFileNameExtensions" String
Lista delimitada por comas
definidas por el usuario
En los blobs de Azure, ignore los tipos de archivo de la lista. Por ejemplo, puede excluir ".png, .png,. mp4" para omitir esos archivos durante la indexación.
"indexedFileNameExtensions" String
Lista delimitada por comas
definidas por el usuario
En los blobs de Azure, selecciona los blobs si la extensión de archivo está en la lista. Por ejemplo, puede enfocar la indexación en archivos de aplicaciones específicos como ".docx, .pptx y .msg", para incluir específicamente esos tipos de archivo.
"failOnUnsupportedContentType" Boolean
true
False (valor predeterminado)
En los blobs de Azure, establezca false si quiere continuar con la indexación cuando se encuentre un tipo de contenido no admitido y no conoce todos los tipos de contenido (extensiones de archivos) de antemano.
"failOnUnprocessableDocument" Boolean
true
False (valor predeterminado)
En los blobs de Azure, establezca false si quiere seguir con la indexación si un documento no puede realizar este proceso de indexación.
"indexStorageMetadataOnly
ForOversizedDocuments"
Boolean true
False (valor predeterminado)
En los blobs de Azure, establezca esta propiedad en true para seguir indexando los metadatos de almacenamiento del contenido de blob que sea demasiado grande para procesar. Los blobs demasiado grandes se tratan como errores de forma predeterminada. Para conocer los límites en el tamaño del blob, consulte Límites de servicio.
"delimitedTextHeaders" String
Lista delimitada por comas
definidas por el usuario
En el caso de los blobs CSV, especifica una lista delimitada por comas de encabezados de columna, útil para asignar campos de origen a campos de destino en un índice.
"delimitedTextDelimiter" String
carácter individual
definidas por el usuario
En el caso de los blobs CSV, especifica el delimitador de fin de línea para los archivos CSV donde cada línea inicia un nuevo documento (por ejemplo, "|").
"firstLineContainsHeaders" Boolean
true (opción predeterminada)
false
En el caso de los blobs CSV, indica que la primera línea (no en blanco) de cada blob contiene encabezados.
"documentRoot" String
ruta de acceso definida por el usuario
En el caso de las matrices JSON, dado un documento estructurado o semiestructurado, puede especificar una ruta de acceso a la matriz mediante esta propiedad.
"dataToExtract" String
"storageMetadata"
"allMetadata"
"contentAndMetadata" (valor predeterminado)
En los blobs de Azure:
Se establece en "storageMetadata" para indexar solamente las propiedades de blob estándar y los metadatos que especificó el usuario.
Se establece en "allMetadata" para extraer los metadatos que proporciona el subsistema de almacenamiento de blobs de Azure y los metadatos específicos del tipo de contenido (por ejemplo, metadatos únicos de archivos .png) que se indexa.
Se establece en "contentAndMetadata" para extraer todos los metadatos y el contenido textual de cada blob.

Para el análisis de imágenes en el enriquecimiento con IA, cuando "imageAction" se establece en un valor distinto "none"de , la "dataToExtract" configuración indica al indexador qué datos extraer del contenido de la imagen. Se aplica al contenido de imágenes insertadas en un .PDF u otra aplicación, o en archivos de imagen como .jpg y .png, de los blobs de Azure.
"imageAction" String
"none"
"generateNormalizedImages"
"generateNormalizedImagePerPage"
En los blobs de Azure, se establece en "none" para ignorar las imágenes insertadas o los archivos de imagen del conjunto de datos. Este es el valor predeterminado.

Para el análisis de imágenes en el enriquecimiento con IA, establezca en"generateNormalizedImages" para extraer texto de imágenes (por ejemplo, la palabra "stop" de un signo de detención de tráfico) e insertarlo como parte del campo de contenido. Durante el análisis de imágenes, el indexador crea una matriz de imágenes normalizadas como parte del descifrado de documentos e inserta la información generada en el campo de contenido. Esta acción requiere que "dataToExtract" se configure en "contentAndMetadata". Una imagen normalizada hace referencia a un procesamiento adicional que crea una imagen de salida uniforme, dimensionada y rotada para facilitar una representación consistente cuando se incluyen imágenes en resultados de búsqueda visuales (por ejemplo, fotografías del mismo tamaño en un control de gráficos, tal como se ve en la demostración JFK). Esta información se genera para cada imagen cuando se usa esta opción.

Si se establece en "generateNormalizedImagePerPage", los archivos PDF se tratarán de manera diferente. En lugar de extraer las imágenes insertadas, cada página se representará como una imagen y se normalizará en consecuencia. Los tipos de archivo que no son PDF se tratarán igual que si se hubiera establecido "generateNormalizedImages".

Establecer la "imageAction" configuración en cualquier valor distinto "none" de requiere que un conjunto de aptitudes también se adjunte a ese indexador.
"normalizedImageMaxWidth"
"normalizedImageMaxHeight"
Cualquier entero comprendido entre 50 y 10 000 Ancho o alto máximo (en píxeles) respectivamente para las imágenes normalizadas generadas cuando se establece ."imageAction" El valor predeterminado es 2000.

El valor predeterminado es de 2000 píxeles para el ancho máximo de las imágenes normalizadas, y la altura se basa en los tamaños máximos admitidos por la habilidad de OCR y la habilidad de análisis de imágenes. La aptitud de OCR admite un ancho y un alto máximos de 4200 para los idiomas distintos del inglés y 10 000 para el inglés. Si aumenta los límites máximos, el procesamiento podría generar un error en imágenes de mayor tamaño en función de la definición del conjunto de aptitudes y del idioma de los documentos.
"allowSkillsetToReadFileData" Boolean
true
False (valor predeterminado)
Al establecer el "allowSkillsetToReadFileData" parámetro en true , se creará una ruta /document/file_data de acceso que representa los datos de archivo originales descargados del origen de datos del blob. Esto le permite pasar los datos de archivo originales a una aptitud personalizada para su procesamiento dentro de la canalización de enriquecimiento o a la aptitud Extracción de documentos. El objeto generado se definirá de la siguiente manera: { "$type": "file", "data": "BASE64 encoded string of the file" }

Establecer el "allowSkillsetToReadFileData" parámetro true en requiere que se adjunte un conjunto de aptitudes a ese indexador, que el "parsingMode" parámetro se establece "default"en , "text" o "json", y el "dataToExtract" parámetro se establece "contentAndMetadata" en o "allMetadata".
"pdfTextRotationAlgorithm" String
"none" (valor predeterminado)
"detectAngles"
Establecer el "pdfTextRotationAlgorithm" parámetro en "detectAngles" puede ayudar a producir una extracción de texto mejor y más legible de los archivos PDF que han girado texto dentro de ellos. Tenga en cuenta que puede haber un pequeño impacto en la velocidad de rendimiento cuando se usa este parámetro. Este parámetro solo se aplica a archivos PDF y solo a archivos PDF con texto incrustado. Si el texto girado aparece dentro de una imagen insertada en el PDF, este parámetro no se aplica.

Establecer el "pdfTextRotationAlgorithm" parámetro en "detectAngles" requiere que el "parsingMode" parámetro esté establecido "default"en .

Parámetros de configuración de Azure Cosmos DB

Los parámetros siguientes son específicos de los indexadores de Cosmos DB.

Parámetro Tipos y valores permitidos Uso
"assumeOrderByHighWaterMarkColumn" Boolean En el caso de los indexadores de Cosmos DB con SQL API, establezca este parámetro para proporcionar una sugerencia a Cosmos DB de que la consulta usada para devolver documentos para la indexación está ordenada de hecho por la _ts columna. Establecer este parámetro proporciona mejores resultados para escenarios de indexación incremental.

parámetros de configuración de Azure SQL

Los parámetros siguientes son específicos de Azure SQL Database.

Parámetro Tipos y valores permitidos Uso
"queryTimeout" String
"hh:mm:ss"
"00:05:00"
Establezca este parámetro para invalidar el valor predeterminado de 5 minutos.
"convertHighWaterMarkToRowVersion" Boolean Establezca este parámetro en "true" para usar el tipo de datos rowversion para la columna de marca de agua alta. Cuando esta propiedad se establece en true, el indexador resta uno del valor rowversion antes de que se ejecute el indexador. Esto se debe a que las vistas con combinaciones de uno a varios pueden tener filas con valores de rowversion duplicados. Restar 1 garantiza que la consulta de indexador no pierde estas filas.
"disableOrderByHighWaterMarkColumn" Boolean Establezca este parámetro en "true" si desea deshabilitar el comportamiento ORDER BY en la consulta utilizada para la detección de cambios. Si usa la directiva de detección de cambios de marca de agua alta, el indexador usa cláusulas WHERE y ORDER BY para realizar un seguimiento de las filas que necesitan indexación (WHERE [High Water Mark Column] > [Current High Water Mark Value] ORDER BY [High Water Mark Column]). Este parámetro deshabilita el comportamiento ORDER BY. La indexación finalizará más rápido, pero la compensación es que si el indexador se interrumpe por cualquier motivo, todo el trabajo del indexador debe repetirse en su totalidad.

fieldMappings

Cree estos elementos cuando los tipos o nombres de campo de destino de origen no coincidan o cuando desee especificar una función. Las asignaciones de campos no distinguen mayúsculas de minúsculas. Consulte Definir asignaciones de campos.

Atributo Descripción
sourceFieldName Necesario. Nombre de la columna de origen.
targetFieldName Necesario. Nombre del campo correspondiente en el índice de búsqueda.
mappingFunction Opcional. Agrega procesamiento a los valores de origen en ruta al motor de búsqueda. Por ejemplo, un valor de cadena arbitraria puede tener una codificación base64 para que se pueda usar para rellenar un campo de clave de documento. Una función de asignación tiene un nombre y parámetros. Entre los valores válidos se incluyen:

base64Encode base64Decode

extractTokenAtPosition
jsonArrayToStringCollection
urlEncode
urlDecode

outputFieldMappings

Especifica las salidas de aptitud (o nodos de un árbol de enriquecimiento) en los campos de un índice de búsqueda.

  "outputFieldMappings" : [
        {
          "sourceFieldName" : "/document/organizations", 
          "targetFieldName" : "organizations"
        },
        {
          "sourceFieldName" : "/document/pages/*/keyPhrases/*", 
          "targetFieldName" : "keyphrases"
        },
        {
            "sourceFieldName": "/document/languageCode",
            "targetFieldName": "language",
            "mappingFunction": null
        }      
   ],

claveDeCifrado

Configura una conexión a Azure Key Vault para claves de cifrado administradas por el cliente (CMK) complementarias. El cifrado con claves administradas por el cliente no está disponible para servicios gratuitos. En el caso de los servicios facturables, solo está disponible para los servicios de búsqueda creados en o después del 2019-01-01.

Se debe autenticar una conexión al almacén de claves. Puede usar "accessCredentials" o una identidad administrada para este propósito.

Las identidades administradas pueden ser asignadas por el sistema o por el usuario (versión preliminar). Si el servicio de búsqueda tiene una identidad administrada asignada por el sistema y una asignación de roles que concede acceso de lectura al almacén de claves, puede omitir "identity" y "accessCredentials" y la solicitud se autenticará mediante la identidad administrada del sistema. Si el servicio de búsqueda tiene la identidad asignada por el usuario y la asignación de roles, establezca la propiedad "identity" en el identificador de recurso de esa identidad.

Atributo Descripción
keyVaultKeyName Necesario. Nombre de la clave de Azure Key Vault usada para el cifrado.
keyVaultKeyVersion Necesario. Versión de la clave de Azure Key Vault.
keyVaultUri Necesario. URI de Azure Key Vault (también denominado nombre DNS) que proporciona la clave. Un URI de ejemplo podría ser https://my-keyvault-name.vault.azure.net
accessCredentials Omita si usa una identidad administrada. De lo contrario, las propiedades de accessCredentials incluyen applicationId (un identificador de aplicación de Azure Active Directory que tiene permisos de acceso a la Key Vault de Azure especificada) y applicationSecret (la clave de autenticación de la aplicación de Azure AD especificada).
identidad Opcional a menos que use una identidad administrada asignada por el usuario para la conexión del servicio de búsqueda a Azure Key Vault. El formato es "/subscriptions/[subscription ID]/resourceGroups/[resource group name]/providers/Microsoft.ManagedIdentity/userAssignedIdentities/[managed identity name]".

Consulte también