Articolo originale pubblicato lunedì 03 dicembre 2012

L'utilizzo di un contesto per rappresentare l'utente corrente nella ricerca era stato già introdotto nella ricerca FAST per SharePoint 2010. Per scoprire come funzionava, potete leggere il post all'indirizzo http://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 non è disponibile la stessa funzione, che tuttavia è stata sostituita dalla Segmentazione utente. Non ho bisogno di spiegarvi cosa sono e come funzionano i Segmenti utente, perché ci ha già pensato un altro collega, qui: http://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. Vi consiglio vivamente di leggere questo post perché offre un'ottima spiegazione dei segmenti utente, e di come utilizzarli.

Non sono qui per prendermi il merito, ma questo è quello che ho fatto. Leggendo il post vedrete che vi è richiesto di scrivere una web part personalizzata per comprendere le segmentazioni utente da applicare alla query corrente, che vengono in seguito aggiunte. Nel blog è descritta l'aggiunta di una segmentazione utente basata su una proprietà del browser. Ho deciso di scrivere una web part che aggiunge una segmentazione utente basata sul dipartimento dell'utente corrente. Se non lo sapete già, quando eseguite un'importazione del profilo da Active Directory in SharePoint 2013, importiamo automaticamente tutti i valori univoci del dipartimento in un archivio termini speciale. È un'ottima scelta per eseguire personalizzazioni sulla base del dipartimento dell'utente corrente.

Una domanda che potreste porvi è: se devo presentare il contenuto sulla base del dipartimento dell'utente, perché non usare semplicemente i gruppi di destinatari? È un'ottima domanda, ed ecco la differenza. Spostando l'attenzione sui gruppi di destinatari, è soltanto una questione di attivo/disattivo: la web part è visualizzata o meno. La segmentazione utente, invece, mi consente di estrarre quelle informazioni fuori dal profilo e personalizzare il contenuto visualizzato. Dal momento che utilizzo una regola di query, posso eseguire una o più query aggiuntive per un utente, aggiungere un risultato promosso, oppure modificare la classificazione di una query, ad esempio per fare in modo che determinati contenuti compaiano più in alto nei risultati di ricerca, a seconda del dipartimento in cui si lavoro. Queste sono solo alcune delle fantastiche nuove caratteristiche che potete ottenere con la ricerca in SharePoint 2013.

Per aiutarvi a usare questa caratteristica, allego l'intero mio progetto in Visual Studio, insieme di web part compilate, soluzione e codice, per la web part che aggiunge il dipartimento dell'utente corrente alla segmentazione utente. Potete fare ciò che volete: utilizzarlo così com'è, o come la base per definire o scrivere la vostra web part di gestione della segmentazione utente. Vorrei sottolineare un paio di cose sull'utilizzo della segmentazione utente e di questa parte, derivanti dalla lettura del post indicato in precedenza:

  • Quando si crea una regola di query, per impostazione predefinita la query viene eseguita sul catalogo del sito di pubblicazione. Questa opzione non restituisce alcun risultato di ricerca. Scegliere invece l'opzione "Tutte le fonti". L'immagine della configurazione della regola di query nel post lo mostra ma non lo mette in evidenza. Dal momento che, per un corretto funzionamento, è necessario modificare il comportamento, ho ritenuto opportuno menzionarlo.
  • Il post parla dell'utilizzo di una web part diversa per visualizzare i risultati del contenuto che si vuole mettere in evidenza quando si utilizza la segmentazione utente. In questo caso, la mia web part eredita da ContentBySearchWebPart, e potete usare il controllo per configurare la segmentazione utente e visualizzare il contenuto in evidenza. L'unica differenza con quello che è indicato nel post, è che quando si aggiunge la web part alla pagina si avrà un diverso valore per la web part nella proprietà Impostazioni. In Impostazioni, configurare la proprietà "Risultati della query forniti da" come "Questa web part".

È tutto qui. Spero che alcuni degli scenari di segmentazione utente nelle ricerche vi siano di aiuto. Nel mio caso, mi stavo concentrando su una formazione speciale per i dipendenti appartenenti al dipartimento "Executive". Quando questi dipendenti si trovavano nella pagina in cui era usata la mia web part, visualizzavano questo banner e un collegamento a un corso di formazione specifico che dovevano seguire:

Questo è un post di blog localizzato. L'articolo originale è disponibile in Using User Context (AKA Segmentation) in Search with SharePoint 2013