Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Note
Búsqueda de Azure AI está disponible a través del portal de Azure, las API REST y los SDK de Azure. También respalda Foundry IQ, la capa de conocimiento administrada que transforma el contenido empresarial en bases de conocimiento reutilizables y compatibles con permisos para agentes en el portal de Microsoft Foundry.
Importante
Las características, funcionalidades o propiedades marcadas (versión preliminar) no están cubiertas por un contrato de nivel de servicio, no se recomiendan para cargas de trabajo de producción y pueden cambiar o restringirse antes de que estén disponibles con carácter general. Los términos de la versión preliminar Búsqueda de Azure AI se aplican a todas las funciones de vista previa, ya sea independiente o parte de una característica disponible con carácter general.
Importante
Estas características y funcionalidades admiten conexiones a otros servicios de servicios Microsoft y de terceros. El uso de estos servicios está sujeto a sus respectivos términos y podría dar lugar a procesamiento o almacenamiento de datos fuera del límite de cumplimiento de Azure, así como a los datos que fluyen a los límites de cumplimiento de Azure.
Es su responsabilidad gestionar si sus datos saldrán fuera de los límites geográficos y de cumplimiento normativo de su organización, así como cualquier implicación relacionada, y garantizar que se hayan establecido los permisos, límites y aprobaciones adecuados.
Es responsable de revisar y probar cuidadosamente las aplicaciones que compile en el contexto de sus casos de uso específicos y de tomar todas las decisiones y personalizaciones adecuadas. Esto incluye implementar sus propias mitigaciones de IA responsables, como metaprompts, filtros de contenido u otros sistemas de seguridad, y garantizar que las aplicaciones cumplan los estándares de calidad, confiabilidad, seguridad y confiabilidad adecuados. Para obtener más información, consulte la nota de transparencia Búsqueda de Azure AI.
El Azure Cosmos DB para el indexador de MongoDB (versión preliminar) importa contenido de Azure Cosmos DB para MongoDB y hace que se pueda buscar en Búsqueda de Azure AI.
En este artículo se complementa la creación de un indexador con información específica de Cosmos DB. Usa las API REST para mostrar un flujo de trabajo de tres partes común a todos los indexadores: crear un origen de datos, crear un índice y crear un indexador. La extracción de datos se produce al enviar la solicitud Crear indexador.
Dado que la terminología puede resultar confusa, merece la pena tener en cuenta que Azure Cosmos DB indexación y Búsqueda de Azure AI indexación son diferentes operaciones. La indexación en Búsqueda de Azure AI crea y carga un índice de búsqueda en el servicio de búsqueda.
Requisitos previos
Complete el formulario de registro de vista previa del indexador. El registro se aprueba automáticamente.
Una cuenta Azure Cosmos DB, base de datos, colección y documentos. Use la misma región para Búsqueda de Azure AI y Azure Cosmos DB para reducir la latencia y para evitar cargos de ancho de banda.
Directiva de indexación automática en la colección Azure Cosmos DB, establecida en Consistente. Esta configuración es la configuración predeterminada. No se recomienda la indexación diferida y podría provocar la ausencia de datos.
Permisos de lectura. Una cadena de conexión de "acceso completo" incluye una clave que concede acceso al contenido, pero si usa roles de Azure, asegúrese de que la identidad administrada del servicio de búsqueda disponga de permisos de rol de lector de cuentas de Cosmos DB.
Un cliente REST para crear el origen de datos, el índice y el indexador.
Limitaciones
Estas son las limitaciones de esta característica:
No se admiten consultas personalizadas para especificar el conjunto de datos.
El nombre
_tsde columna es una palabra reservada. Si necesita este campo, considere la posibilidad de soluciones alternativas para rellenar un índice.El atributo
$refMongoDB es una palabra reservada. Si lo necesita en la colección de MongoDB, considere la posibilidad de soluciones alternativas para rellenar un índice.
Como alternativa a este conector, si el escenario tiene cualquiera de esos requisitos, puede usar la API o el SDK de inserción o considerar Azure Data Factory con un índice de Búsqueda de Azure AI como receptor.
Definición del origen de datos
La definición del origen de datos especifica los datos que se van a indexar, las credenciales y las directivas para identificar los cambios en los datos. Un origen de datos se define como un recurso independiente para que varios indexadores puedan usarlos.
Para esta llamada, especifique una versión preliminar de la API REST para crear un origen de datos que se conecte a través de la API de MongoDB. Puede usar la versión 2020-06-30-preview o una posterior. Se recomienda la API REST de versión preliminar más reciente.
Cree o actualice un origen de datos para establecer su definición:
POST https://[service name].search.windows.net/datasources?api-version=2026-08-01-preview Content-Type: application/json api-key: [Search service admin key] { "name": "[my-cosmosdb-mongodb-ds]", "type": "cosmosdb", "credentials": { "connectionString": "AccountEndpoint=https://[cosmos-account-name].documents.azure.com;AccountKey=[cosmos-account-key];Database=[cosmos-database-name];ApiKind=MongoDb;" }, "container": { "name": "[cosmos-db-collection]" }, "dataChangeDetectionPolicy": { "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy", "highWaterMarkColumnName": "_ts" }, "dataDeletionDetectionPolicy": null, "encryptionKey": null, "identity": null }Establezca "type" en
"cosmosdb"(obligatorio).Establezca "credenciales" en una cadena de conexión. En la sección siguiente se describen los formatos admitidos.
Establezca "contenedor" en la colección. La propiedad "name" es necesaria y especifica el identificador de la colección de base de datos que se va a indexar. En Azure Cosmos DB para MongoDB, no se admite la consulta.
Establezca "dataChangeDetectionPolicy" si los datos son volátiles y desea que el indexador recoja solo los elementos nuevos y actualizados en ejecuciones posteriores.
Establezca "dataDeletionDetectionPolicy" si desea quitar documentos de búsqueda de un índice de búsqueda cuando se elimina el elemento de origen.
Credenciales admitidas y cadenas de conexión
Los indexadores pueden conectarse a una colección mediante las siguientes conexiones. Para las conexiones que tienen como destino la API de MongoDB, asegúrese de incluir "ApiKind" en el cadena de conexión.
Evite los números de puerto en la dirección URL del punto de conexión. Si incluye el número de puerto, se produce un error en la conexión.
| Cadena de conexión de acceso completo |
|---|
{ "connectionString" : "AccountEndpoint=https://<Cosmos DB account name>.documents.azure.com;AccountKey=<Cosmos DB auth key>;Database=<Cosmos DB database id>;ApiKind=MongoDb" } |
| Puede obtener la clave de autenticación de Cosmos DB en la página de la cuenta de Azure Cosmos DB del portal de Azure seleccionando Conección de cadena en el panel izquierdo. Asegúrese de copiar la contraseña principal y reemplazar el valor de clave de autenticación de Cosmos DB por ella. |
| Cadena de conexión de identidad administrada |
|---|
{ "connectionString" : "ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.DocumentDB/databaseAccounts/<your cosmos db account name>/;(ApiKind=[api-kind];)" } |
| Esta cadena de conexión no requiere una clave de cuenta, pero debe haber configurado previamente un servicio de búsqueda para conectarse mediante una identidad administrada y haber creado una asignación de roles que conceda permisos de rol de lector de la cuenta de Cosmos DB. Consulte Configuración de una conexión de indexador a una base de datos de Azure Cosmos DB mediante una identidad administrada para obtener más información. |
Adición de campos de búsqueda a un índice
En un índice de búsqueda, agregue campos para aceptar los documentos JSON de origen o la salida de la proyección de consulta personalizada. Asegúrese de que el esquema de índice de búsqueda sea compatible con los datos de origen. Para el contenido de Azure Cosmos DB, el esquema de índice de búsqueda debe corresponder a los elementos Azure Cosmos DB en el origen de datos.
Crear o actualizar un índice para definir campos de búsqueda que almacenan datos:
POST https://[service name].search.windows.net/indexes?api-version=2026-08-01-preview Content-Type: application/json api-key: [Search service admin key] { "name": "mysearchindex", "fields": [{ "name": "doc_id", "type": "Edm.String", "key": true, "retrievable": true, "searchable": false }, { "name": "description", "type": "Edm.String", "filterable": false, "searchable": true, "sortable": false, "facetable": false, "suggestions": true }] }Cree un campo de clave de documento ("key": true). Para un índice de búsqueda basado en una colección de MongoDB, la clave del documento puede ser "doc_id", "rid" o algún otro campo de cadena que contenga valores únicos. Siempre que los nombres de campo y los tipos de datos sean los mismos en ambos lados, no se requieren asignaciones de campos.
"doc_id" representa "_id" para el identificador de objeto. Si especifica un campo de "doc_id" en el índice, el indexador lo rellena con los valores del identificador de objeto.
"rid" es una propiedad del sistema en Azure Cosmos DB. Si especifica un campo de "rid" en el índice, el indexador lo rellena con el valor codificado en base64 de la propiedad "rid".
Para cualquier otro campo, el campo de búsqueda debe tener el mismo nombre que se define en la colección.
Cree campos adicionales para obtener contenido más buscable. Consulte Creación de un índice para obtener más información.
Mapeo de tipos de datos
| Tipo de datos JSON | Tipos de campos de Búsqueda de Azure AI |
|---|---|
| Bool | Edm.Boolean, Edm.String |
| Números que parecen enteros | Edm.Int32, Edm.Int64, Edm.String |
| Números que parecen puntos flotantes | Edm.Double, Edm.String |
| Cadena | Edm.String |
| Matrices de tipos primitivos como ["a", "b", "c"] | Collection(Edm.String) |
| Cadenas con aspecto de fechas | Edm.DateTimeOffset, Edm.String |
| Objetos GeoJSON como { "type": "Point", "coordinates": [long, lat] } | Edm.GeographyPoint |
| Otros objetos JSON | N/A |
Configuración y ejecución del indexador de Azure Cosmos DB para MongoDB
Una vez creado el índice y el origen de datos, está listo para crear el indexador. La configuración del indexador especifica las entradas, los parámetros y las propiedades que controlan los comportamientos de tiempo de ejecución.
Cree o actualice un indexador ; para ello, asígnele un nombre y haga referencia al origen de datos y al índice de destino:
POST https://[service name].search.windows.net/indexers?api-version=2026-08-01-preview Content-Type: application/json api-key: [search service admin key] { "name" : "[my-cosmosdb-indexer]", "dataSourceName" : "[my-cosmosdb-mongodb-ds]", "targetIndexName" : "[my-search-index]", "disabled": null, "schedule": null, "parameters": { "batchSize": null, "maxFailedItems": 0, "maxFailedItemsPerBatch": 0, "base64EncodeKeys": false, "configuration": {} }, "fieldMappings": [], "encryptionKey": null }Especifique las asignaciones de campos si hay diferencias en el nombre o el tipo de campo, o si necesita varias versiones de un campo de origen en el índice de búsqueda.
Consulte Creación de un indexador para obtener más información sobre otras propiedades.
Un indexador se ejecuta automáticamente cuando se crea. Para evitarlo, establezca "disabled" en true. Para controlar la ejecución del indexador, ejecute un indexador a petición o colóquelo según una programación.
Comprobación del estado del indexador
Para supervisar el estado del indexador y el historial de ejecución, envíe una solicitud Obtener estado del indexador :
GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2026-08-01-preview
Content-Type: application/json
api-key: [admin key]
La respuesta incluye el estado y el número de elementos procesados. Debería ser similar al ejemplo siguiente:
{
"status":"running",
"lastResult": {
"status":"success",
"errorMessage":null,
"startTime":"2022-02-21T00:23:24.957Z",
"endTime":"2022-02-21T00:36:47.752Z",
"errors":[],
"itemsProcessed":1599501,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
"executionHistory":
[
{
"status":"success",
"errorMessage":null,
"startTime":"2022-02-21T00:23:24.957Z",
"endTime":"2022-02-21T00:36:47.752Z",
"errors":[],
"itemsProcessed":1599501,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
... earlier history items
]
}
El historial de ejecución contiene hasta 50 de las ejecuciones completadas más recientemente, que se ordenan en el orden cronológico inverso para que la ejecución más reciente llegue primero.
Indexación de documentos nuevos y modificados
Una vez que un indexador haya rellenado completamente un índice de búsqueda, es posible que desee que el indexador posterior se ejecute para indexar incrementalmente solo los documentos nuevos y modificados de la base de datos.
Para habilitar la indexación incremental, establezca la propiedad "dataChangeDetectionPolicy" en la definición del origen de datos. Esta propiedad indica al indexador qué mecanismo de seguimiento de cambios se usa en los datos.
Para los indexadores de Azure Cosmos DB, la única directiva admitida es la HighWaterMarkChangeDetectionPolicy mediante la propiedad _ts (marca de tiempo) proporcionada por Azure Cosmos DB.
En el ejemplo siguiente se muestra una definición de origen de datos con una directiva de detección de cambios:
"dataChangeDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName": "_ts"
},
Indexación de documentos eliminados
Cuando se eliminan filas de la colección, normalmente desea eliminar esas filas del índice de búsqueda también. El propósito de una directiva de detección de eliminación de datos es identificar eficazmente los elementos de datos eliminados. Actualmente, la única directiva admitida es la directiva Soft Delete (la eliminación se indica con algún tipo de marca), que se especifica en la definición del origen de datos de la siguiente manera:
"dataDeletionDetectionPolicy": {
"@odata.type" : "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
"softDeleteColumnName" : "the property that specifies whether a document was deleted",
"softDeleteMarkerValue" : "the value that identifies a document as deleted"
}
Si usa una consulta personalizada, asegúrese de que la propiedad referenciada por softDeleteColumnName sea proyectada por la consulta.
En el ejemplo siguiente se crea un origen de datos con una directiva de eliminación temporal:
POST https://[service name].search.windows.net/datasources?api-version=2026-08-01-preview
Content-Type: application/json
api-key: [Search service admin key]
{
"name": "my-cosmosdb-mongodb-ds",
"type": "cosmosdb",
"credentials": {
"connectionString": "AccountEndpoint=https://[cosmos-account-name].documents.azure.com;AccountKey=[cosmos-account-key];Database=[cosmos-database-name];ApiKind=MongoDb"
},
"container": { "name": "[my-cosmos-collection]" },
"dataChangeDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName": "_ts"
},
"dataDeletionDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
"softDeleteColumnName": "isDeleted",
"softDeleteMarkerValue": "true"
}
}
Pasos siguientes
Ahora puede controlar cómo ejecutar el indexador, supervisar el estado o programar la ejecución del indexador. Los artículos siguientes se aplican a los indexadores que extraen contenido de Azure Cosmos DB:
- Configurar una conexión de indexador a una base de datos de Azure Cosmos DB usando una identidad administrada
- Indexación de grandes conjuntos de datos
- Acceso del indexador al contenido protegido por las características de seguridad de red de Azure.