Reiner Ganser

Reiner Ganser
22.06.2013
5 Kommentar(e)

Das neue Inhaltssuche-Webpart (Content Search Webpart) in SharePoint 2013 bietet viele Möglichkeiten um schnell Inhalte zu aggregieren. Ein praktisches Beispiel soll die Leistungsfähigkeit und die Nutzung zeigen.

An einem kleinen Beispiel möchte ich zeigen, wie man den das Inhaltssuche-Webpart (Content Search Webpart) einsetzen und die Ergebnisse mit Hilfe von Steuerelement (Control) und Element (Item) Anzeige Vorlagen entsprechend anzeigen kann.

Für eine SharePoint 2013 Extranet Plattform war die Aufgabenstellung wie folgt (vereinfacht):

- Auf der Startseite sollen alle Website Sammlungen und Websites angezeigt werden, auf die der aktuell angemeldete Benutzer Zugriff hat.
- Bei den Website Sammlungen soll der Website Besitzer angezeigt werden
- Die Websites sollen gemäss der Hierarchie eingerückt dargestellt werden

Ich möchte die Umsetzung in 2 Posts aufzeigen:

Teil 1: Beispiel für Inhaltssuche-Webpart (Content Search Webpart): Abfrage erstellen
Teil 2: Beispiel für Inhaltssuche-Webpart (Content Search Webpart): Anzeige Vorlagen erstellen.


Hinweis: Ich schreibe öfters die englischen Begriffe in Klammer, damit man auch mit einem englischen UI zurechtkommt und weil die deutschen Übersetzungen manchmal doch sehr gewöhnungsbedürftig sind.

Teil 1: Beispiel für Inhaltssuche-Webpart (Content Search Webpart): Abfrage erstellen

Alle Websitesammlungen und Websites, auf die der Benutzer Berechtigungen hat, könnten natürlich über das Objektmodell ermittelt werden. Das ist mehr oder weniger eine Fingerübung. Die Problematik besteht vor allem in der schlechten Performance bei sehr vielen Websitessammlungen und Websites.
Deutlich schneller geht es mit dem neuen Inhaltssuche-Webpart (Content Search Webpart) von SharePoint 2013. Wenn man zudem den Continuous Crawl eingestellt hat, werden neue Websites innerhalb von ca. 15 Minuten erkannt und indiziert (siehe auch http://blogs.technet.com/b/tothesharepoint/archive/2012/09/14/how-can-i-achieve-the-best-freshness-of-search-results-introducing-continuous-crawls-for-sharepoint.aspx).

Kleiner Tipp am Rande: Die neue Suchfunktion bietet einiges an neuen Funktionen an. Um sie jedoch performant zu betreiben ist es wichtig, die Hardware Anforderungen zu beachten. Auf einem Server, auf dem der Suchdienst läuft sollten die Hardware Anforderungen laut http://technet.microsoft.com/en-us/library/jj219628.aspx erfüllt werden. Ist dies nicht möglich kann konfigurativ zu reduziert werden. Man sollte sich zumindest einige Gedanken darüber machen.

Doch nun zur Umsetzung der Aufgabe mit dem Search Webpart. Man fügt das Inhaltssuche-Webpart (Content Search Webpart) auf eine SharePoint ein (zu finden in der Kategorie Inhaltsrollup (Content Rollup) unter dem Namen Inhaltssuche (Content Search).
Danach geht’s in die Webpart Eigenschaften:


Der Schaltfläche Anfrage ändern (Change Query) führt zur Benutzerschnittstelle, um die Abfrage zusammen zu bauen und zu testen.

Ich gehe zumeist wie folgt vor: Wenn ich in der Drop Down Liste neben Wählen Sie eine Abfrage aus (Select a Query) keine passende Auswahl finde, wähle ich meistens die Auswahl Items matching a content type (System). Die so erhaltene Treffermenge verfeinere ich anhand der Einschränkungen (Refiners). Die Einschränkungen (Refiners) kann man zumeist dann im Abfragetext (Querytext) benutzen. Für unsere Aufgabe lässt sich dies in folgenden Schritten erreichen:

1. Auf dem Reiter Grundlagen (Basics) folgende Einstellungen vornehmen und kurz auf TEST klicken und dann wieder zurück in den Reiter Grundlagen (Basics) wechseln:


Dadurch erhält man auf jeden Fall alle Websites. Das Schöne beim Content Query Webpart ist, dass die Suchergebnisse gleich angezeigt werden. Leider hat Microsoft kein seitenweises Blättern eingebaut.

2. Weiter geht’s mit dem Reiter Einschränkungen (Refiners): Dies kann man benutzen, wenn man mal ein Ergebnis erhalten hat. Die Benutzerschnittstelle ist an dieser Stelle recht gut gemacht und man findet zumeist schnell die richtige Einschränkung. In unserem Fall filtern wir über die WebTemplate auf STS. Dadurch bekommt man alle Website Sammlungen und Websites:


Nach dem Hinzufügen sieht das Ergebnis dann wir folgt aus:

3. Nachdem nun die Abfrage bereits das gewünschte Ergebnis liefert, kann man es noch optimieren und in unserem Fall die Einschränkung direkt als Suchabfrage benutzen. Hierzu kann man den Reiter TEST aktivieren. Dort klickt man auf den Link Weitere anzeigen (Show more) und erhält weitere Details zur Abfrage:


 In unserem Fall können wir die Einschränkung WebTemplate:"ǂǂ535453" direkt als Abfrage Text benutzen. Man kopiert also den Text WebTemplate:"ǂǂ535453" in die Zwischenablage.

4. Danach aktiviert man wieder den Reiter Grundlagen (Basics) und klickt dann auf den Link In den erweiterten Modus wechseln (Switch to Advanced Mode). Im Feld Abfragetext (Query Text) tragen wir dann die Einschränkung ein:


5. Die gewählte Einschränkung kann danach im Reiter Einschränkungen (Refiners) wieder entfernt werden.

6. Was jetzt noch fehlt ist die Sortierreihenfolge. Momentan besteht bei der Auflistung der Websites und Website Sammlungen noch keine Beziehung zur Hierarchie. Deshalb öffnen wir den Reiter Sortierung (Sorting) und sortieren nach SPSiteUrl. Ein Klick auf den Reiter Test zeigt das Ergebnis an:


Die Reihenfolge passt nun auch zur Hierarchie der entsprechenden Website
Die Erstellung der Abfrage ist damit abgeschlossen. Bevor wir im nächsten Post die Steuerelement (Control) und Element (Item) Anzeige Vorlagen erstellen, machen wir noch ein paar allgemeine Einstellungen:

- In unserem Fall wollen wir 10 Ergebnisse pro Seite anzeigen
- Als Steuerelement (Control) Vorlage stellen wir List with Paging ein
- Als Element (Item) Vorlage stellen wir Two lines ein



Insgesamt sieht das Ergebnis damit wir folgt aus:


Im 2. Post werden wir die Anzeige mit Hilfe von Steuerelement (Control) und Element (Item) Anzeigevorlagen anpassen.


 




Kommentar hinterlassen




Is four < than five? (true/false)

Kommentar(e)

Hallo Matthias,
man kann so etwas ähnliches auch mit SP 2013 Stabdard mit Hilfe des Search Result Webpart erreichen. Dort gibt es in den Web Part Eigenschaften ebenfalls einen Query Builder und man kann Display Templates angeben. Du findest ein Beispiel unter folgender URL: http://blogs.technet.com/b/tothesharepoint/archive/2013/11/06/how-to-configure-the-search-results-web-part-to-use-a-new-result-source-in-sharepoint-2013.aspx

Reiner Ganser | 22.01.2014 23:21:41

 

Eine sehr praktische Lösung. Kann sowas auch mit SharePoint 2013 Standard realisiert werden? Da ist ja der benutzte WebPart leider nicht enthalten.

Matthias | 14.01.2014 11:54:56

 

Oops, da ist wohl etwas verloren gegangen :-( Ich habe den 2. Teil nochmal eingestellt und mit dem Teil 1 (siehe oben) verlinkt.

Reiner | 08.01.2014 23:57:58

 

Sehr gut geschrieben. Leider fehlt der zweite Teil ;(

Madelyn | 08.01.2014 09:41:33

 

Erstmal: Sehr scön beschrieben und eifnach nachzuvollziehen. Danke!!!
Aber nun hab ich noch eine Frage: Kann man die Inhaltssuche so formatieren, dass man damit eine Tag Cloud erstellen könnte?
Mein Problem ist nämlich, dass ich von der Firma her den Auftrag habe, eine Tag Cloud zu erstellen, die dynamisch (!) ist, ohne das Sharepoint Webpart "TagCloud" zu benutzen. (Die MySite wurde deaktiviert, deswegen lässt sich die Build-In Tag Cloud nicht benutzen.)
Ich könnte ja selber eine Tag Cloud mit HTML bauen, wobei dass ja dann übrehaupt nicht dynamisch wäre und somit sofort sich als Möglichkeit ausschließt. Haben Sie irgendeine Idee wie ich mein Problem lösen könnte?

Matthias | 02.07.2013 08:31:06