Verwenden von Benutzerkontext (auch als "Segmentierung" bezeichnet) bei der Suche in SharePoint 2013

Veröffentlichung des Originalartikels: 03.12.2012

Das Verwenden von Kontext zum Darstellen des aktuellen Benutzers bei der Suche haben wir erstmals in FAST Search für SharePoint 2010 eingeführt. Wenn Sie an der damaligen Funktionsweise interessiert sind, werfen Sie einen Blick in diesen Beitragt: https://blogs.technet.com/b/speschka/archive/2009/12/09/using-custom-properties-to-create-a-fast-search-for-sharepoint-2010-user-context.aspx. In SharePoint 2013 wird nicht exakt dasselbe Feature verwendet, es wurde stattdessen durch die Benutzersegmentierung ersetzt. Was Benutzersegmente überhaupt sind und wie sie funktionieren, muss ich nicht mehr erklären – das hat bereits ein Kollege aus dem Suche-Team in diesem hervorragenden Beitrag erledigt: https://blogs.msdn.com/b/adaptive_experiences_in_sharepoint_2013/archive/2012/11/14/set-up-user-segmentation-to-drive-adaptive-experiences-in-a-product-catalog-in-sharepoint-2013.aspx. Ich empfehle Ihnen, diesen Blogbeitrag zu lesen, darin werden Benutzersegmente sehr gut erklärt und die Verwendung anhand eines Beispiels veranschaulicht.

Ich möchte dem Kollegen nicht den Wind aus den Segeln nehmen, also erkläre ich, um was es in diesem Beitrag geht. Darin wird erwähnt, dass ein benutzerdefiniertes Webpart geschrieben werden muss, um alle Benutzersegmentierungen zu ermitteln, die auf die aktuelle Abfrage angewendet werden sollen und sie ihr dann hinzuzufügen. In dem anderen Blogbeitrag wird das Hinzufügen einer Benutzersegmentierung basierend auf einer Eigenschaft des Browsers erklärt. Ich habe beschlossen, ein Webpart zu schreiben, das eine Benutzersegmentierung basierend auf der Abteilung des aktuellen Benutzers hinzufügt. Vielleicht haben Sie es noch nicht gehört, aber beim Importieren eines Profils von Active Directory in SharePoint 2013 werden alle eindeutigen Abteilungswerte in einen speziellen Terminologiespeicher importiert. Daher bietet es sich an, basierend auf der Abteilung des aktuellen Benutzers einige Anpassungen vorzunehmen.

Sie fragen sich vielleicht: "Wieso werden für das Bereitstellen von Inhalt basierend auf der Abteilung eines Benutzers nicht einfach Benutzergruppen verwendet?" Das ist eine berechtigte Frage, und ich erkläre hier den Unterschied: Bei der Ausrichtung auf Benutzergruppen kommt es nur auf das Aktivieren/Deaktivieren an – ein Webpart wird entweder angezeigt oder nicht. Mit der Benutzersegmentierung kann ich diese Informationen aus dem Profil oder anderswo abrufen und den angezeigten Inhalt anpassen. Da ich eine Abfrageregel verwende, kann ich für einen Benutzer mindestens eine zusätzliche Abfrage durchführen, ein höhergestuftes Ergebnis hinzufügen oder sogar die Bewertung einer Abfrage ändern, z. B. wenn bestimmter Inhalt basierend auf der Abteilung, in der Sie arbeiten, weiter oben in den Suchergebnissen angezeigt werden soll. Dies sind nur einige der fantastischen Suchfunktionen in SharePoint 2013.

Um Ihnen das Verwenden dieser Funktion zu erleichtern, füge ich einfach mein vollständiges Visual Studio-Projekt für das Webpart zum Hinzufügen der Abteilung des aktuellen Benutzers zur Benutzersegmentierung als Anhang bei – die kompilierte Webpart-Assembly, die Lösung und den Quellcode. Sie können es beliebig verwenden – so wie es ist oder als Basis zum Optimieren oder Schreiben eines eigenen Webparts zum Verwalten der Benutzersegmentierung. Wenn Sie den oben verlinkten Beitrag lesen, möchte ich noch einige Punkte zur Verwendung der Benutzersegmentierung und dieses Webparts hervorheben:

  • Beim Erstellen der Abfrageregel ist diese standardmäßig für die Abfrage des Katalogs nach der Veröffentlichungswebsite konfiguriert. Wenn Sie diese Option beibehalten, erzielen Sie keine Suchergebnisse. Wählen Sie stattdessen die Option "Alle Quellen". Auf der Abbildung der Abfrageregelkonfiguration in diesem Beitrag wird dies zwar dargestellt, aber nicht erklärt. Da Sie dazu das Standardverhalten ändern müssen, erkläre ich dies hier.
  • Der Beitrag erwähnt das Verwenden eines anderen Webparts zum Anzeigen der Ergebnisse aus dem Inhalt, den Sie mithilfe der Benutzersegmentierung hervorheben. In diesem Fall (auf den im Beitrag hingewiesen wird) erbt mein Webpart vom Webpart "ContentBySearchWebPart", und Sie können das Steuerelement zum Einrichten der Benutzersegmentierung und zum Anzeigen des hervorgehobenen Inhalts verwenden. Der einzige kleine Unterschied zu der Beschreibung im Beitrag besteht darin, dass beim Hinzufügen des Webparts zur Seite in der Einstellungseigenschaft für den Webpart ein anderer Wert verwendet wird. Ändern Sie einfach in den Einstellungen den Wert der Eigenschaft "Abfrageergebnisse bereitgestellt von" in "Dieses Webpart".

Das ist alles – jetzt sind Sie startklar. Ich hoffe, Sie finden bei Ihren Suchvorgängen einige interessante Szenarien für die Benutzersegmentierung. Mein eigenes Szenario habe ich für eine Spezialschulung für Mitarbeiter in einer Vorstandsabteilung geschrieben. Wenn diese Mitarbeiter die Seite aufrufen, auf der mein Webpart verwendet wird, sehen sie diesen Banner und einen Link zu einer speziellen internen Handelsschulung, an der sie teilnehmen müssen:

Es handelt sich hierbei um einen übersetzten Blogbeitrag. Sie finden den Originalartikel unter Using User Context (AKA Segmentation) in Search with SharePoint 2013