En este artículo, te guiaré a través de la configuración de un indexador en Azure AI Search para indexar documentos almacenados en bibliotecas de documentos de SharePoint Online. Además, cubriremos los requisitos previos, las limitaciones y consideraciones que debes tener en cuenta antes de implementar esta solución.
Configuración paso a paso
Paso 1: Crear un SPN en Microsoft Entra ID
Para que el indexador se autentique en SharePoint Online, debes crear un Service Principal Name (SPN). Sigue estos pasos:
- Inicia sesión en el portal de Azure.
- Navega a Microsoft Entra ID > App registrations > New registration.
- Proporciona un nombre, selecciona Single tenant y registra la aplicación.
- En API permissions, añade los permisos:
- Application permissions:
Files.Read.All
,Sites.Read.All
.
- Application permissions:
- Concede consentimiento de administrador si es necesario.
- En Authentication, activa Allow public client flows y guarda.
- Crea un Client secret y guarda el secreto generado.
Paso 2: Crear la fuente de datos en Azure AI Search
Ejecuta el siguiente comando curl
para crear una fuente de datos desde SharePoint Online:
curl -X POST "https://[service name].search.windows.net/datasources?api-version=2024-05-01-preview" \
-H "Content-Type: application/json" \
-H "api-key: [API Key]" \
-d '{
"name": "sharepoint-datasource",
"type": "sharepoint",
"credentials": {
"connectionString": "SharePointOnlineEndpoint=[SharePoint URL];ApplicationId=[Client ID SPN];ApplicationSecret=[Secret SPN];TenantId=[Tenant ID]"
},
"container": {
"name": "defaultSiteLibrary",
"query": null
}
}'
Paso 3: Crear el índice en Azure AI Search
Crea el índice donde se almacenarán los datos indexados:
curl -X PUT "https://[service name].search.windows.net/indexes/sharepoint-index?api-version=2024-05-01-preview" \
-H "Content-Type: application/json" \
-H "api-key: [API Key]" \
-d '{
"name": "sharepoint-index",
"fields": [
{ "name": "id", "type": "Edm.String", "key": true, "searchable": false },
{ "name": "metadata_spo_item_name", "type": "Edm.String", "searchable": true },
{ "name": "metadata_spo_item_content_type", "type": "Edm.String", "filterable": true },
{ "name": "content", "type": "Edm.String", "searchable": true }
]
}'
Paso 4: Crear el indexador en Azure AI Search
Crea un indexador para automatizar la recolección de datos desde SharePoint:
curl -X POST "https://[service name].search.windows.net/indexers?api-version=2024-05-01-preview" \
-H "Content-Type: application/json" \
-H "api-key: [API Key]" \
-d '{
"name": "sharepoint-indexer",
"dataSourceName": "sharepoint-datasource",
"targetIndexName": "sharepoint-index",
"parameters": {
"configuration": {
"indexedFileNameExtensions": ".pdf, .docx",
"excludedFileNameExtensions": ".png, .jpg",
"dataToExtract": "contentAndMetadata"
}
},
"schedule": {
"interval": "PT1H"
},
"fieldMappings": [
{
"sourceFieldName": "metadata_spo_site_library_item_id",
"targetFieldName": "id",
"mappingFunction": { "name": "base64Encode" }
}
]
}'
Paso 5: Verificar el estado del indexador
Para comprobar el estado de tu indexador, usa este comando:
curl -X GET "https://[service name].search.windows.net/indexers/sharepoint-indexer/status?api-version=2024-05-01-preview" \
-H "Content-Type: application/json" \
-H "api-key: [API Key]"
Conclusión
Este proceso te permite indexar documentos de SharePoint Online en Azure AI Search, lo que proporciona una búsqueda rápida y eficiente de contenido almacenado en bibliotecas de documentos. Asegúrate de revisar las limitaciones y probar adecuadamente en entornos de desarrollo antes de su implementación en producción