Metadatennavigation und -filterung

Letzte Änderung: Montag, 19. April 2010

Gilt für: SharePoint Server 2010

Inhalt dieses Artikels
Metadatennavigation und -filterung
Tipps
Metadatennavigation und -filterung - Programmierbarkeit

Metadatennavigation und -filterung stellt eine Methode zum Filtern von Microsoft SharePoint Server 2010-Listenansichten nach den Elementmetadaten bereit. Ein Listenbesitzer kann dieses Feature verwenden, um Felder in der Liste als Navigationsschlüsselfelder hochzustufen, und Benutzern, die diese Listen betrachten, wird eine Filterbenutzeroberfläche angezeigt, die das Filtern der aktuellen Listenansicht ermöglicht, um nur die Elemente mit den gewünschten Werten in diesen Feldern anzuzeigen. Metadatennavigation und -filterung verwendet die Indizes auf Listenebene, um ein nahtloses Durchsuchen zu unterstützen, selbst in sehr großen Listen, die mehrere Millionen von Elementen enthalten. Dieses Feature unterstützt die Verwendung von Metadaten und Kennzeichnung, indem sichergestellt wird, dass in mehreren Feldern gekennzeichnete Elemente leichter zu finden sind, als Listenansichtselemente, die nicht gekennzeichnet sind.

Metadatennavigation und -filterung

Metadatennavigation und -filterung besitzt folgende Eigenschaften:

  • Eine neue Benutzeroberfläche zum Durchsuchen und Filtern von Listenansichten auf der Grundlage der Metadaten der Listenelemente

  • Einen Prozess, der in Abhängigkeit von den Feldern, die in der Liste als Navigationsfelder hochgestuft wurden, automatisch Listenindizes erstellt

  • Ein Prozess, der den besten Index für die ausgeführte Abfrage auswählt, um nach Möglichkeiten Leistungseinschränkungen in der Listenansicht zu vermeiden

Neue Benutzeroberfläche

Die neue Benutzeroberfläche verfügt über Navigationshierarchien und Schlüsselfilter:

  • Navigationshierarchien sind Felder, die in der Baumstruktur angezeigt werde, wenn ein Benutzer die übergeordnete Liste anzeigt. Die Werte in diesem Feld können wie eine Ordnerstruktur durchsucht und angeklickt werden, um Dokumente anzuzeigen, die mit den entsprechenden Werten übereinstimmen. Wie eine gute Ordnerstruktur unterteilt ein gutes Navigationshierarchiefeld Inhalte in verwaltbare Blöcke.

  • Schlüsselfilter sind Felder, die unterhalb der Baumstrukturebene angezeigt werden. Sie stellen zusätzliche Filter dar, mit denen Sie den Inhalt Ihrer aktuellen Ansicht eingrenzen können.

Automatische Indexerstellung

Auf der Seite Navigationseinstellungen für Metadaten für eine Liste können Sie auch festlegen, ob Indizes für die Liste entsprechend Ihrer aktuell ausgewählten Navigationshierarchie und den Schlüsselfilterfeldern automatisch erstellt werden sollen. Wenn diese Einstellung aktiviert wird (dies ist die Standardeinstellung für eine Liste), besitzt dies die folgenden Auswirkungen, wenn die Seite Navigationseinstellungen für Metadaten gespeichert wird:

  • Es werden Einzelspaltenindizes für alle unterstützte Schlüsselfilterfelder erstellt, mit Ausnahme der Felder Inhaltstyp und Auswahl.

  • Zusammengesetzte Indizes werden für alle unterstützen Kombinationen von Navigationshierarchien und Schlüsselfiltern erstellt.

Die Beibehaltung der Einstellung, die festlegt, ob Indizes für die Liste entsprechend Ihrer zurzeit ausgewählten Navigationshierarchie und Schlüsselfeldereinstellungen automatisch erstellt werden sollen, wird für die meisten Szenarien empfohlen. Wenn keine Indizes für die Liste erstellt werden, ist jede Abfrage in dieser Liste unindiziert. Unindizierte Abfragen werden in Microsoft SharePoint Server 2010 für große Listen oder für Listen, die mehr Elemente enthalten als die im Abfrageschwellenwert der Listenansicht definierten Menge, nicht unterstützt. In einigen erweiterten Szenarien ist es möglicherweise empfehlenswert, diese Einstellung zu deaktivieren und Indizes manuell zu konfigurieren. Dabei ist Folgendes zu bedenken:

  • SharePoint Server 2010 unterstützt maximal 20 Indizes pro Liste. Die Metadatennavigation und -filterung kann keinen Index erstellen, wenn in diesen 20 Indizes nicht ausreichend Platz für alle möglichen Kombinationen von Navigationshierarchie und ausgewählten Schlüsselfilterfeldern.

  • Die Erstellung neuer Indizes in einer großen Liste ist nicht zulässig, wenn Sie kein Farmadministrator sind oder in einem Dienstfenster arbeiten.

Indextypen und unterstützte Felder

Tabelle 1 fasst die Feldtypen zusammen, die an der Metadatennavigation teilnehmen können sowie in welchem Umfang.

Tabelle 1. Feldtypen, die an der Metadatennavigation teilnehmen können

Feldtyp

Unterstützt für die Navigationshierarchie?

Unterstützt als Schlüsselfilter?

Unterstützt Einzelspaltenindex?

Unterstützt zusammengesetzten Index?

Inhaltstyp

Ja

Ja

Ja

Ja

Auswahl (Einzelwert)

Ja

Ja

Ja

Nein

Verwaltete Metadaten (Einzelwert)

Ja

Ja

Ja

Ja

Verwaltete Metadaten (Mehrfachwert)

Ja

Ja

Ja*

Nein

Person oder Gruppe (Einzelwert)

Nein

Ja

Ja

Ja

Person oder Gruppe (Mehrfachwert)

Nein

Ja

Nein

Nein

Datum und Uhrzeit

Nein

Ja

Ja

Ja

Zahl

Nein

Ja

Ja

Ja

HinweisHinweis

*Mehrfachwert-Suchfelder werden automatisch entsprechend ihrer Speicherung in der Datenbank indiziert und werden daher nicht auf das Limit von 20 Indizes angerechnet. Diese können jedoch nicht in zusammengesetzten Indizes verwendet werden.

Indizierte Abfragen

Die Metadatennavigation und -filterung versucht bei jedem Laden einer Listenansicht, den vorteilhaftesten Index zu verwenden. Jedes Mal, wenn der Benutzer eine Listenansicht lädt oder durch die Anwendung eines neuen Filters, die Löschung eines Filters oder die Anwendung einer Sortierung auf ein Feld aktualisiert, steht im Hintergrund eine Logik zur Verfügung, die die Anforderung untersucht und eine Möglichkeit zur Abfrage der Datenbank ermittelt. Auf diese Weise wird eine Leistungseinbuße bei großen Listen vermieden. Dies ist nicht immer einfach. Für eine Abfrage können mehrere Möglichkeiten zur Verfügung stehen, wie diese ausgeführt werden kann, und jede Möglichkeit kann andere Ergebnisse erbringen. Der Prozess funktioniert folgendermaßen:

  1. Wenn der Benutzer zu einer Listenansichtseite navigiert oder eine Listenansicht aktualisiert, führt die Seite eine Collaborative Application Markup Language (CAML)-Abfrage bei der Liste aus, um die Elemente abzurufen, die im Listenansicht-Webpart angezeigt werden. Diese Abfrage kann einen oder mehrere Filter enthalten, die aus ausgewählten Werten in einer Navigationshierarchie, einem oder mehreren Schlüsselfilterauswahlen, einem oder mehreren in der Anzeigedefinition definierten Filtern oder einem oder mehreren in Spaltenfiltern definierten Filtern des Listenansicht-Webpart stammen. Wenn die aktuelle Liste groß ist, kann diese CAML-Abfrage eine SPThrottledQueryException ausgeben, was bedeutet, dass die Abfrage nicht selektiv ist. In anderen Worten, es werden mehr Elemente in der Datenbank untersucht, als vom Administrator im Abfrageschwellenwert der Listenansicht definiert wurden. Wenn diese Ausnahme auftritt, werden die Schritte 2 und folgende ausgeführt.

  2. Die Metadatennavigation untersucht jede der Filteroperationen (oder Klauseln) in der CAML-Abfrage und ermittelt, für welche in der Liste entsprechende Indizes erstellt wurden, die für diese Filteroperation verwendet werden können. Wenn sich beispielsweise ein Index in der Spalte Geändert von befindet, und die aktuelle Listenansicht filtert nach der Spalte Geändert von, kann dieser Index von der Abfrage verwendet werden.

  3. Für jede dieser gültigen Index-/Filterkombinationen schreibt die Metadatennavigation die aktuelle CAML-Abfrage um, damit sie diesen Index verwendet.

  4. Die Metadatennavigation und -filterung versucht daraufhin, jede dieser indizierten Abfragen auszuführen, bis eine Abfrage gefunden wird, die keine SPThrottledQueryException generiert. Wenn alle Abfragen zu dieser Ausnahme führen, wird eine Fallbackabfrage erstellt und ausgeführt.

HinweisHinweis

Die Metadatennavigation und -filterung ist standardmäßig für die meisten in SharePoint Server 2010 erstellten Websites aktiviert. Dieser Prozess wird für alle Listen auf diesen Websites ausgeführt, unabhängig davon, ob dieses Feature tatsächlich konfiguriert wurde.

Fallbackabfragen

Wenn die Metadatennavigation und -filterung feststellt, dass die aktuelle Benutzeranforderung nicht als selektive indizierte Abfrage ausgedrückt werden kann, wird eine Fallbackabfrage erstellt und ausgeführt. Eine Fallbackabfrage ist eine modifizierte Version der ursprünglichen Benutzerabfrage, die nur für einen Teil der Liste ausgeführt wird anstatt für die ganze Liste. Fallbackabfragen sollen dem Benutzer einen zweckmäßigen Teilsatz der Ergebnisse anzeigen, selbst wenn die ursprüngliche Abfrage aufgrund von Leistungseinbußen in der großen Liste nicht ausgeführt werden konnte. Fallbackabfragen können auch als Warnungen für Listenbesitzer dienen, dass die Datenverteilung in der Liste nicht optimal ist, und dass bestimmte von Benutzern ausgeführte Abfragen möglicherweise keinen vollständigen Ergebnissatz zurückgeben können, was bedeutet, dass Benutzer möglicherweise nicht auf die benötigten Daten zugreifen können. Gelegentlich geben Fallbackabfragen 0 Ergebnisse zurück, wenn keines der Elemente in dem von der Abfrage durchsuchten Teil der Liste Ergebnisse enthält, die der ursprünglichen Benutzerabfrage entsprechen.

Da die Ergebnisse einer Fallbackabfrage nur ein Teilsatz der vom Benutzer angeforderten Elemente darstellen, wird der Benutzer in einer Bildschirmnachricht informiert, dass nur ein Teilsatz der Ergebnisse angezeigt wird, und dass zusätzliche Filter angewendet werden müssen, um den vollständigen Satz anzuzeigen. Bei jedem neu festgelegten Filter erhält das Abfragemodul die Möglichkeit, eine selektive Filter-/Indexkombination zu finden, die nicht in einer SPThrottledQueryException resultiert. Es stehen zwei Typen von Fallbackabfragen zur Verfügung (in der Reihenfolge ihrer Präferenz: indizierte Fallbackabfragen und einfache Fallbackabfragen.

  1. Indizierte Fallbackabfragen. Diese Fallbackabfrage arbeitet mit einem der Indizes der Liste und untersucht die N zuletzt erstellten Elemente, die dem gefilterten Wert in diesem Index entsprechen. Damit indizierte Fallbackabfragesemantiken verwendet werden können, muss die Benutzerabfrage einen Filter für eine indizierte Spalte besitzen, und diese Filter-/Indexkombination muss einige zusätzliche Einschränkungen erfüllen. Nur die in Tabelle 2 aufgeführten Filter-/Indexkombinationen können in einer indizierten Fallbackabfrage verwendet werden:

    Tabelle 2. In Fallbackabfragen zulässige Filter-/Indexkombinationen

    Indextyp

    Abfragen, die Indexfallback unterstützen

    Inhaltstyp

    Ein Wert

    Auswahl (Einzelwert)

    Ein Wert

    Verwaltete Metadaten (Einzelwert)

    Ein Wert

    Viele Werte

    Verwaltete Metadaten (Mehrfachwert)

    Ein Wert

    Viele Werte

    Person oder Gruppe (Einzelwert)

    Ein Wert

    Datum und Uhrzeit

    Ein Wert

    Ein Bereich von Werten

    Zahl

    Ein Wert

    Ein Bereich von Werten

    Verwaltete Metadaten (Einzelwert), zusammengesetzter Index mit Datum und Uhrzeit

    Ein Wert in der Spalte Verwaltete Metadaten

    Ein Wert oder ein Bereich von Werten in der Spalte Datum und Uhrzeit

    Verwaltete Metadaten (Einzelwert), zusammengesetzter Index mit Zahl

    Ein Wert in der Spalte Verwaltete Metadaten

    Ein Wert oder ein Bereich von Werten in der Spalte Anzahl

    Verwaltete Metadaten (Einzelwert), zusammengesetzter Index mit Inhaltstyp

    Ein Wert in der Spalte Verwaltete Metadaten

    Ein Wert in der Spalte Inhaltstyp

    Verwaltete Metadaten (Einzelwert), zusammengesetzter Index mit Person oder Gruppe

    Ein Wert in der Spalte Verwaltete Metadaten

    Ein Wert in der Spalte Person oder Gruppe

    Inhaltstyp, zusammengesetzter Index mit Datum und Uhrzeit

    Ein Wert in der Spalte Inhaltstyp

    Ein Wert oder ein Bereich von Werten in der Spalte Datum und Uhrzeit

    Inhaltstyp, zusammengesetzter Index mit Zahl

    Ein Wert in der Spalte Inhaltstyp

    Ein Wert oder ein Bereich von Werten in der Spalte Anzahl

    Inhaltstyp, zusammengesetzter Index mit Person oder Gruppe

    Ein Wert in der Spalte Inhaltstyp

    Ein Wert in der Spalte Person oder Gruppe

    HinweisHinweis

    In Tabelle 2 bezeichnet "ein Wert" einen Filter, der unter Verwendung einer Klausel in CAML ausgedrückt werden kann, beispielsweise 10. "Viele Werte" bezeichnet einen Filter, der unter Verwendung einer Klausel in CAML ausgedrückt werden kann, beispielsweise 1011. Ein "Bereich von Werten" bezeichnet einen Filter, der unter Verwendung einer Klausel in CAML ausgedrückt werden kann, beispielsweise 2010-02-04T08:00:00Z.

    Für bestimmte indizierte Kombinationen kann eine indizierte Fallbackabfrage nicht verwendet werden, wenn sich die Abfrage nicht im festgelegten Format befindet. Wenn beispielsweise für ein Einzelwert-Taxonomiefeld und ein Datumsfeld ein zusammengesetzter Index vorhanden ist, die Benutzerabfrage jedoch mehrere Werte aus dem Taxonomiefeld in einer CAML-Klausel enthält. In diesem Fall wird anstatt einer indizierten Abfrage eine einfache Fallbackabfrage ausgeführt.

  2. Einfache Fallbackabfragen. Abfragen, die nicht über eine indizierte Filterklausel verfügen, die ein indiziertes Fallback unterstützen, müssen eine einfache Fallbackabfrage ausführen. Eine einfache Fallbackabfrage wird mit den N zuletzt erstellten Elementen in der Liste ausgeführt. Wenn keines dieser N Elemente den Abfrageparametern in der Benutzerabfrage entspricht, werden keine Ergebnisse zurückgeben.

    HinweisHinweis

    Sowohl für indizierte wie für einfache Fallbackabfragen bedeutet "N" (Abfrageschwellenwert der Listenansicht * 0,20). Der Abfrageschwellenwert der Listenansicht kann von einem Administrator konfiguriert werden, der Multiplikator 0,20 kann jedoch nicht geändert werden.

Tipps

  • Die Metadatennavigation lässt sich am besten zusammen mit verwalteten Metadatenfeldern verwenden. Deren Robustheit, hierarchische Natur und Anpassungsfähigkeit machen sie besonders geeignet für das Unterteilen von Listeninhalten in verwaltbare Blöcke.

  • Das Entwicklerdashboard kann mit Listenansichtsseiten mit Metadatennavigation verwendet werden, um den CAML- und SQL-Code hinter allen indizierten und Fallbackabfragen anzuzeigen, die für eine Benutzerabfrage ausgeführt wurden.

  • Administratoren können Fallbackabfragen auch als Warnung verwenden, die angibt, dass die Daten in einer Liste nicht optimal zwischen Indizes und Feldwerten verteilt sind, und dass eine Neuverteilung der Daten erforderlich ist, damit Benutzer der Liste in der Lage sind, auf die benötigten Dokumente zuzugreifen. Wenn die umfassende Protokollierung aktiviert ist, werden jedes Mal ULS-Protokolleinträge geschrieben, wenn eine Fallbackabfrage ausgeführt wird. Es könnte eine Integritätsregel entwickelt werden, die diese Protokolleinträge abfängt und dem Administrator eine entsprechende Warnung anzeigt, damit Maßnahmen ergriffen werden können.

Metadatennavigation und -filterung - Programmierbarkeit

Das Objektmodell für die Metadatennavigation und -filterung finden Sie vor allem im Microsoft.Office.DocumentManagement.MetadataNavigation-Namespace. Dieser enthält die folgenden Typen.

Tabelle 3. Programmiermodell für die Metadatennavigation und -filterung

Typ

Beschreibung

MetadataNavigationContext

Verfolgt den Status der Steuerelemente für die Metadatennavigation und des Listenansicht-Webparts während einer HTTP-Anforderung.

MetadataNavigationHierarchy

Stellt eine Hierarchie von MetadataNavigationItem-Objekten dar.

MetadataNavigationItem

Stellt ein SPItem-Objekt dar, das einem MetadataNavigationHierarchy-Objekt zugeordnet ist.

MetadataNavigationKeyFilter

Stellt einen Schlüsselfilter dar, der verwendet, um die Metadatennavigation zu einem aussagekräftigen und funktionsfähigen Subset zu filtern.

MetadataNavigationSettings

Konfiguriert, welche Einstellung eines MetadataNavigationItem-Objekts auf einem SPList-Objekt die Anzeige von Metadatenhierarchien und Filtern in Listenansichten steuern.

Siehe auch

Konzepte

Programmiermodell für die Dokumentverwaltung

Verwalten von Dokumenten

Verwalten von Metadaten