Buscar contenedores y archivos

Se aplica a: Desarrollador

Use Búsqueda de Microsoft en Microsoft Graph cuando la aplicación necesite búsqueda de palabras clave en contenedores o contenido de SharePoint Embedded. La API de búsqueda clasifica los resultados coincidentes y devuelve drive recursos para contenedores o driveItem recursos para archivos y carpetas.

Nota:

La búsqueda de SharePoint Embedded está en versión preliminar y solo está disponible en el punto de conexión de Microsoft Graph /beta : no hay ninguna v1.0 API de búsqueda para contenedores. La búsqueda solo admite permisos delegados y sigue el patrón de acceso excepcional.

Elegir el ámbito de búsqueda

Ámbito de cada solicitud al tipo de contenedor o contenedor que pertenece a la aplicación. La búsqueda se ejecuta en el contexto del usuario que ha iniciado sesión, por lo que el servicio recorta los resultados al contenido al que el usuario puede acceder. La aplicación también debe tener acceso al tipo de contenedor correspondiente para poder abrir contenedores o archivos devueltos.

Use estas propiedades administradas en :queryString

Ámbito Tipo de entidad Patrón de consulta
Todos los contenedores de un tipo drive ContainerTypeId:{containerTypeId}
Un contenedor por título drive Title:'contoso' AND ContainerTypeId:{containerTypeId}
Un contenedor por descripción drive Description:'Everything' AND ContainerTypeId:{containerTypeId}
Files en un contenedor driveItem Title:'contoso' AND ContainerId:{containerId}
Files en un tipo de contenedor driveItem 'contoso' AND ContainerTypeId:{containerTypeId}

Si la aplicación ha optado por no detectar contenido de Microsoft 365, establezca sharePointOneDriveOptions.includeHiddenContenttrue en en el cuerpo de la solicitud.

Buscar contenedores

Envíe una POST solicitud a los recursos de búsqueda y solicitud drive de Microsoft Graph.

POST https://graph.microsoft.com/beta/search/query
Content-Type: application/json
{
  "requests": [
    {
      "entityTypes": ["drive"],
      "query": {
        "queryString": "ContainerTypeId:498c6855-8f0e-0de7-142e-4e9ff86af9ae"
      },
      "sharePointOneDriveOptions": {
        "includeHiddenContent": true
      },
      "from": 0,
      "size": 25
    }
  ]
}

La respuesta incluye hitsContainers. Cada acierto contiene un hitId, rank, summaryy un resource cuyo @odata.type es #microsoft.graph.drive.

Buscar archivos y carpetas

Solicite driveItem recursos cuando el usuario busque nombres de archivo o contenido de archivo. Ámbito a un contenedor específico con ContainerId cuando el usuario ya está dentro de un área de trabajo.

{
  "requests": [
    {
      "entityTypes": ["driveItem"],
      "query": {
        "queryString": "Title:'contoso' AND ContainerId:b!UBoDBcfpTEeInnz0Rlmlsp6EC-DsPN5Kj3uW0fD1mPp9ptYmB71GRpxbhbDlGdb0"
      },
      "sharePointOneDriveOptions": {
        "includeHiddenContent": true
      },
      "from": 0,
      "size": 25
    }
  ]
}

Un driveItem resultado puede incluir metadatos de archivo como id, , name, size, createdDateTimelastModifiedDateTime, parentReference, createdBy, lastModifiedByy webUrl.

Devolver los campos seleccionados y ordenar los resultados

Use la fields colección para solicitar propiedades administradas específicas en la respuesta. Use sortProperties solo con propiedades ordenables.

{
  "requests": [
    {
      "entityTypes": ["driveItem"],
      "query": { "queryString": "Everything about contoso" },
      "sharePointOneDriveOptions": { "includeHiddenContent": true },
      "fields": ["SampleOWSText", "id", "name", "parentReference", "webUrl", "createdDateTime", "lastModifiedDateTime", "size"],
      "sortProperties": [
        { "name": "Created", "isDescending": false }
      ]
    }
  ]
}

Use from y size para paginar los resultados clasificados. Lea hitsContainers[].total y hitsContainers[].moreResultsAvailable decida si desea solicitar otra página.

Buscar propiedades personalizadas

Para las propiedades personalizadas del contenedor, anexe OWSTEXT al nombre de la propiedad personalizada en la cadena de consulta.

customPropertyNametOWSTEXT:customPropertyValue AND ContainerTypeId:498c6855-8f0e-0de7-142e-4e9ff86af9ae

Use la búsqueda de texto completo (el /beta/search/query punto de conexión anterior) cuando los usuarios escriban términos de texto libre y desee una clasificación de relevancia entre contenedores. Use la enumeración directa en lugar de la búsqueda cuando la aplicación debe filtrar por valores de metadatos conocidos sin clasificación de relevancia. Por ejemplo, consulte los elementos de unidad con $filter, $expandy $orderby:

GET https://graph.microsoft.com/v1.0/drives/{container-id}/items?$filter=startswith(listitem/fields/{column}, '{value}')&$expand=listitem($expand=fields)

Cuando un contenedor tiene más de 5000 elementos y se enumera con $orderby, incluya el Prefer: HonorNonIndexedQueriesWarningMayFailRandomly encabezado necesario para las enumeraciones ordenadas grandes.

Limitaciones conocidas

La búsqueda exige el acceso del usuario que ha iniciado sesión, no la autorización de la aplicación. Los resultados incluyen todos los contenedores y elementos a los que el usuario puede acceder que coincide con la consulta, incluso los contenedores cuyo tipo de contenedor no está autorizado a usar la aplicación. ContainerTypeId Incluya siempre en el queryString ámbito de para los resultados de la aplicación.

Para abrir un contenedor o archivo devuelto por la búsqueda, la aplicación debe tener permisos de acceso al tipo de contenedor correspondiente.

Pasos siguientes