Dieser Artikel beschreibt die Schritte um Werte im Property Bag über die Suche anzeigen zu lassen. In dem folgenden Beispiel gehe ich davon aus, dass ein 3rd Party Produkt bei der Erstellung einer Site Collection bereits das Property als auch dessen Wert angelegt hat. Ein gängiges Beispiel hierfür ist die Kostenstelle (hier „CostCenter“) oder auch die Abteilung, ich nutze Cost Center.
Property Bag auslesen
Lassen wir uns als erstes die Eigenschaft (Property) anzeigen, das geht mit folgendem Zweizeiler:
001 002 | $spweb = get-spweb http://intranet/projects/dm $spweb.AllProperties |
Das Ergebnis sieht dann in etwa wie folgt aus – es liefert übrigens alle Eigenschaften zurück bzw. das ganze Property Bag:
Indexed Property erstellen
Als nächstes muss hierfür das Property auf indexable gesetzt werden. Dazu muss man das folgende PowerShell Skript ausführen, dabei ist „CostCenter“ durch das eigene Property zu ersetzen:
001 002 003 004 005 006 007 | $spweb = Get-SPWeb http://localhost# this would set the property and value, but this was already done by GA # $spweb.AllProperties[“CostCenter”] = “value1” $spweb.IndexedPropertyKeys.Add(“CostCenter”) |
Bitte beachten Sie dass dieser Schritt für jede Site neu ausgeführt werden muss, auch wenn das Property in einer anderen Site identisch benannt ist.
Anschließend ist ein Full Crawl auszuführen, da erst anschließend die Suche das Property in die Crawled Properties aufnimmt.
SharePoint Suche konfigurieren
Jetzt müssen wir ein Managed Property erstellen – damit beeinflussen wir ob und wie das Property angezeigt bzw. durchsuchbar ist.
- Öffnen Sie die Central Admin – Manage Service Applications – Search Service
- Search Schema
- Managed Properties – Create
- Property Name, e.g.: CostCenter
- Type: Text
- Main characteristics: Searchable
- Queryable – hier kommt es auf den Anwendungsfall an, in meinem Beispiel möchte ich als Ergebnis die Site als Ergebnis anführen, wenn ich nach dem Wert suche – ohne dass ich „CostCenter:“ meiner Suche voranstellen muss – daher „No“
Für das Abrufen per WebPart (über die Suche) ist es evtl. geschickter hier „Yes“ zu wählen. - Retrievable – hier kommt es auf den Anwendungsfall an, in meinem Beispiel möchte ich als Ergebnis die Site als Ergebnis anführen, wenn ich nach dem Wert suche, daher „Yes“
- Safe for Anonymous: Yes
- Mappings to crawled properties: <e.g. CostCenter or your name>
- Start Full Crawl und etwas warten bis die Suche auch den Index aktualisiert
Suche und das Ergebnis
Wenn ich jetzt den Wert in der Suche angebe, bekomme ich als Treffer die Site angezeigt:
Referenz
- Using SharePoint PropertyBag in the Context of Search: http://blogs.msdn.com/b/mvpawardprogram/archive/2013/11/25/using-sharepoint-propertybag-in-the-context-of-search.aspx
- Searching Property Bags in SharePoint 2013 https://samlman.wordpress.com/2015/03/01/searching-property-bags-in-sharepoint-2013/