Filtrado y navegación por metadatos

Última modificación: lunes, 19 de abril de 2010

Hace referencia a: SharePoint Server 2010

En este artículo
Filtrado y navegación por metadatos
Sugerencias
Programación del Filtrado y navegación por metadatos

La característica Filtrado y navegación por metadatos ofrece una forma de filtrar vistas de lista de Microsoft SharePoint Server 2010 por los metadatos de los elementos. Un propietario de la lista puede usar esta característica para promover campos en la lista como campos de navegación clave, mientras que los usuarios que ven dichas listas ven una interfaz de usuario (UI) de filtrado que les permite filtrar la vista de lista actual para que muestre los elementos con los valores deseados en esos campos. El Filtrado y navegación por metadatos funciona con índices de nivel de lista para permitir una experiencia de exploración sin complicaciones, incluso en listas muy grandes con decenas de millones de elementos. Esta característica promueve el uso de metadatos y etiquetado asegurándose de que, cuando los elementos estén bien etiquetados en varios campos, sean intrínsecamente más fáciles de detectar que los elementos de la vista de lista que no están etiquetados.

Filtrado y navegación por metadatos

En el Filtrado y navegación por metadatos se incluye:

  • Una nueva interfaz de usuario para examinar y filtrar las vistas de lista en función de los metadatos de los elementos de la lista.

  • Un proceso que crea índices de lista automáticamente, en función de los campos que se promueven como campos de navegación en la lista.

  • Un proceso que selecciona el mejor índice para la consulta que se ejecuta para evitar el límite de la vista de lista, siempre que sea posible.

Nueva interfaz de usuario

La nueva interfaz de usuario incluye jerarquías de navegación y filtros clave:

  • Las jerarquías de navegación son campos que aparecen en la vista de árbol cuando un usuario está viendo la lista principal. Los valores incluidos en este campo se pueden examinar, como una estructura de carpetas, y se puede hacer clic en ellos para ver los documentos que coinciden con los valores correspondientes. Al igual que una buena estructura de carpetas, un buen campo de jerarquía de navegación divide el contenido en fragmentos manejables.

  • Los filtros clave son campos que aparecen debajo del nivel del árbol. Son filtros complementarios que ayudan a reducir el contenido de la vista activa.

Creación automática de índices

En la página Configuración de navegación por metadatos de una lista, también puede especificar si los índices se crean automáticamente en la lista para que coincidan con la jerarquía de navegación y los campos clave de filtro actualmente seleccionados. Si se habilita esta configuración (ya está habilitada de forma predeterminada en la lista), cuando se guarda la página de configuración de navegación de metadatos:

  • Se crean índices de una sola columna en todos los campos de filtro clave compatibles, a excepción del campo Tipo de contenido y el campo Elección.

  • Se crean índices compuestos en todas las combinaciones compatibles de jerarquías de navegación y filtros clave.

En la mayoría de los casos, se recomienda dejar el valor que especifica si los índices se crean automáticamente en la lista para que coincida con la configuración de la jerarquía de navegación y los campos de filtro clave actualmente seleccionados, porque si no se crean índices en una lista, no se indizarán las consultas de la lista. En Microsoft SharePoint Server 2010, no se admiten consultas no indizadas en listas de gran tamaño o en listas que contienen más elementos que la cantidad definida en el umbral de consultas de la vista de lista del sitio. En algunos casos avanzados, es posible que sea conveniente desactivar esta opción y configurar índices de forma manual. Entre las consideraciones importantes se incluyen:

  • SharePoint Server 2010 admite un máximo de 20 índices por lista. La característica Filtrado y navegación por metadatos no puede crear un índice si no hay espacio suficiente en este espacio de índice de 20 para todas las combinaciones aptas de la jerarquía de navegación y los campos de filtro clave seleccionadas.

  • La creación de índices nuevos dentro de una lista de gran tamaño está prohibida, a menos que sea administrador del conjunto o granja de servidores, o esté trabajando durante un período para tareas administrativas.

Tipos de índices y campos compatibles

En la tabla 1 se resumen los tipos de campos que pueden participar en la navegación de metadatos y en qué capacidad.

Tabla 1. Tipos de campos que pueden participar en la navegación de metadatos

Tipo de campo

¿Se admite como jerarquía de navegación?

¿Se admite como filtro clave?

¿Admite un índice de una sola columna?

¿Admite un índice compuesto?

Tipo de contenido

Elección (valor único)

No

Metadatos administrados (valor único)

Metadatos administrados (valor múltiple)

Sí*

No

Persona o grupo (valor único)

No

Persona o grupo (valor múltiple)

No

No

No

Fecha y hora

No

Número

No

Nota

* Los campos de búsqueda con valor múltiple se indizan automáticamente según la forma en que se almacenan en la base de datos y, por tanto, no cuentan para el límite de 20 del índice. Sin embargo, no pueden participar en índices compuestos.

Consultas indizadas

El Filtrado y navegación por metadatos hace lo posible por colocar el índice más útil en funcionamiento cada vez que se carga una vista de lista. Cada vez que el usuario carga una vista de lista o la actualiza mediante la aplicación de un filtro nuevo, la eliminación de un filtro o la aplicación de un criterio de ordenación en un campo, existe cierta lógica en segundo plano que examina la solicitud y determina una forma para realizar consultas en la base de datos que evite el límite de la lista de gran tamaño. Esto no siempre es sencillo; una consulta puede tener más de una forma en que se puede ejecutar y cada forma puede generar resultados diferentes. El proceso funciona de la siguiente manera:

  1. Cuando el usuario navega a una página de vista de lista o actualiza una vista de lista, la página ejecuta una consulta de Lenguaje de marcado de la aplicación de colaboración (CAML) en la lista para obtener los elementos que se muestran en el elemento web Vista de lista. Esta consulta puede incluir uno o varios filtros, que proceden de los valores seleccionados en una jerarquía de navegación, una o varias selecciones de filtro clave, uno o varios de los filtros especificados en la definición de vista o uno o varios de los filtros especificados en los filtros de columna elemento web Vista de lista. Si la lista actual es grande, es posible que esta consulta CAML arroje SPThrottledQueryException, lo que significa que la consulta no es selectiva. En otras palabras, examina más elementos en la base de datos que el umbral de consultas de vista de lista definido por el administrador. Si se produce esta excepción, se ejecutan el paso 2 y posteriores.

  2. El Filtrado y navegación por metadatos examina cada una de las operaciones (o cláusulas) del filtro en la consulta de CAML y determina cuáles tienen los índices correspondientes creados en la lista que puede usarse para satisfacer la operación del filtro. Por ejemplo, si existe un índice en la columna Modificado por y la vista de lista actual filtra en la columna Modificado por, es posible que la consulta use ese índice.

  3. En cada una de estas combinaciones de índice y filtro válidas, la navegación de metadatos vuelve a escribir la consulta CAML actual para ese índice.

  4. El Filtrado y navegación por metadatos intenta ejecutar cada una de esas consultas indizadas hasta encontrar una que no genere una SPThrottledQueryException. Si todas las consultas producen esta excepción, se crea y ejecuta una consulta de reserva.

Nota

El Filtrado y navegación por metadatos está habilitado de forma predeterminada en la mayoría de los sitios creados en SharePoint Server 2010. Este proceso se produce en cada lista de esos sitios, independientemente de si realmente se ha configurado la característica.

Consultas de reserva

Si el Filtrado y navegación por metadatos determina que la solicitud del usuario actual no se puede expresar como una consulta indizada que sea selectiva, se genera y ejecuta una consulta de reserva. Una consulta de reserva es una versión modificada de la consulta original del usuario que consulta en una sola una parte de la lista en lugar de toda la lista. Las consultas de reserva están diseñadas para mostrar al usuario un conjunto parcial útil de los resultados, incluso cuando no se puede ejecutar la consulta original debido al límite de la lista de gran tamaño. Las consultas de reserva también pueden servir como una advertencia para los propietarios de la lista de que la distribución de los datos en la lista está sesgada y determinadas consultas que ejecutan los usuarios no pueden devolver un conjunto de resultados completo, lo que significa que se pueden bloquear los usuarios para impedir su acceso al contenido que necesitan. En algunas ocasiones, las consultas de reserva devuelven 0 resultados si ninguno de los elementos en la parte de la lista que examina la consulta contiene resultados que coincidan con la consulta original del usuario.

Debido a que los resultados de una consulta de reserva son solo un conjunto parcial de los elementos que el usuario ha solicitado, aparece un mensaje en pantalla que le indica al usuario que está viendo solo un conjunto parcial de los resultados y debe aplicar filtros adicionales para ver un conjunto completo. Cada vez que un usuario especifica un filtro adicional, es otra oportunidad para que el motor de consulta busque una combinación de índice y filtro selectiva que no tenga como resultado una SPThrottledQueryException. Hay dos tipos de consultas de reserva, en orden de preferencia: las consultas de reserva indizadas y las consultas de reserva simples.

  1. Consultas de reserva indizadas. Este tipo de consulta de reserva funciona en uno de los índices de la lista y examina los N elementos creados más recientemente que coinciden con el valor filtrado de dicho índice. Para usar la semántica de la consulta de reserva indizada, la consulta del usuario debe tener un filtro en una columna indizada y esa combinación de índice y filtro debe cumplir con algunas restricciones adicionales. Solo los tipos de combinaciones de índice y filtro que aparecen en la tabla 2 pueden participar en una consulta de reserva indizada:

    Tabla 2. Combinaciones de índice y filtro permitidas en consultas de reserva

    Tipo de índice

    Consultas compatibles con reserva de índice

    Tipo de contenido

    Un valor

    Elección (valor único)

    Un valor

    Metadatos administrados (valor único)

    Un valor

    Muchos valores

    Metadatos administrados (valor múltiple)

    Un valor

    Muchos valores

    Persona o grupo (valor único)

    Un valor

    Fecha y hora

    Un valor

    Un intervalo de valores

    Número

    Un valor

    Un intervalo de valores

    Metadatos administrados (valor único), índice compuesto con Fecha y hora

    Un valor en la columna Metadatos administrados

    Un valor o un intervalo de valores en la columna Fecha y hora

    Metadatos administrados (valor único), índice compuesto con Número

    Un valor en la columna Metadatos administrados

    Un valor o un intervalo de valores en la columna Número

    Metadatos administrados (valor único), índice compuesto con Tipo de contenido

    Un valor en la columna Metadatos administrados

    Un valor en la columna Tipo de contenido

    Metadatos administrados (valor único), índice compuesto con Persona o grupo

    Un valor en la columna Metadatos administrados

    Un valor de la columna Persona o grupo

    Tipo de contenido, índice compuesto con Fecha y hora

    Un valor en la columna Tipo de contenido

    Un valor o un intervalo de valores en la columna Fecha y hora

    Tipo de contenido, índice compuesto con Número

    Un valor en la columna Tipo de contenido

    Un valor o un intervalo de valores en la columna Número

    Tipo de contenido, índice compuesto con Persona o grupo

    Un valor en la columna Tipo de contenido

    Un valor de la columna Persona o grupo

    Nota

    En la tabla 2, "un valor" significa un filtro que se puede expresar con una cláusula en CAML, como 10. "Muchos valores" significa un filtro que se pueden expresar con una cláusula en CAML, como 1011. Un "intervalo de valores" significa un filtro que se pueden expresar con una cláusula en CAML, como 2010-02-04T08:00:00Z.

    En determinadas combinaciones indizadas, no se puede usar una consulta de reserva indizada si la consulta no está en el formato especificado. Por ejemplo, si existe un índice compuesto en un campo de taxonomía de valor único y en un campo de fecha, pero la consulta del usuario incluye varios valores del campo de taxonomía en una cláusula de CAML, se ejecuta una consulta de reserva simple en lugar de una consulta indizada.

  2. Consultas de reserva simples. Las consultas que no tengan una cláusula de filtro indizada que admiten una reserva indizada deben ejecutar una consulta de reserva simple. Una consulta de reserva simple funciona en los N elementos principales creados más recientemente de la lista. Si ninguno de estos N elementos coincide con los parámetros de consulta en la consulta del usuario, no se devuelve ningún resultado.

    Nota

    Tanto en las consultas de reserva indizadas como en las simples, "N" significa (umbral de consultas de vista de lista * 0,20). Los administradores pueden configurar el umbral de consultas de vista de lista, pero no se puede cambiar el multiplicador 0,20.

Sugerencias

  • La navegación por metadatos funciona mejor con campos de metadatos administrados; su solidez, naturaleza jerárquica y adaptabilidad hace que resulte eficaz dividir el contenido de la lista en fragmentos que se puedan administrar.

  • El panel de programador se puede usar en las páginas de vista de lista con la navegación de metadatos para ver CAML y SQL detrás de cada una de las consultas indizadas y de reserva que se ejecutaron para una consulta del usuario.

  • Es posible que algunos administradores deseen tratar una consulta de reserva como una advertencia que indique que los datos de una lista no están bien distribuidos en todos los índices y valores de campos, y que sea necesaria la redistribución de algunos datos para que los usuarios de la lista puedan tener acceso a los documentos que necesitan. Si el registro detallado está habilitado, se escriben las entradas del registro ULS cada vez que se ejecuta una consulta de reserva. Se puede desarrollar una regla de estado para interceptar estas entradas del registro y mostrar una advertencia al administrador de que se está produciendo situación para que se puedan tomar medidas.

Programación del Filtrado y navegación por metadatos

El modelo de objetos para el Filtrado y navegación por metadatos se encuentra principalmente en el espacio de nombres Microsoft.Office.DocumentManagement.MetadataNavigation. Incluye los siguientes tipos.

Tabla 3. Modelo de programación del Filtrado y navegación por metadatos

Tipo

Descripción

MetadataNavigationContext

Realiza un seguimiento del estado de los controles de navegación de metadatos y el elemento web de vista de lista durante una solicitud HTTP.

MetadataNavigationHierarchy

Representa una jerarquía de objetos MetadataNavigationItem.

MetadataNavigationItem

Representa un objeto SPItem asociado con un objeto MetadataNavigationHierarchy.

MetadataNavigationKeyFilter

Representa un filtro clave que se usa para filtrar la navegación de metadatos para un subconjunto significativo en el que se pueda trabajar.

MetadataNavigationSettings

Configura qué opciones de un objeto MetadataNavigationItem en un objeto SPList controlan la visualización de filtros y jerarquías de metadatos en vistas de lista.

Vea también

Conceptos

Modelo de programación para la administración de documentos

Administración de documentos

Administración de metadatos