Indexación de datos de bibliotecas de documentos de SharePoint en Azure AI Search

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.
  • 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

Más información

 

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *