Integrazione dei metadati degli utenti nelle ricerche di contenuto tramite regole di query in SharePoint 2013

Articolo originale pubblicato lunedì 20 agosto 2012

Il titolo è probabilmente poco esplicativo. Posso provare a riformularlo in questo modo. Alcuni giorni fa mi è capitato di leggere un quesito simile al seguente: nella mia organizzazione sono presenti dipendenti che lavorano per reparti diversi, ad esempio Vendite, Contabilità e così via. Quando qualcuno digita una query, ad esempio per informazioni sulla "gestione vendite", desidererei che venissero mostrati anche i dipendenti che lavorano nel reparto Vendite. Questo può essere un utilizzo interessante della nuova funzionalità Regole di query di SharePoint 2013.

Per iniziare, facciamo un passo indietro ed esaminiamo una funzionalità correlata che utilizzeremo in questa procedura. Quando in SharePoint 2013 si importa un profilo da Active Directory, viene automaticamente popolato un set di termini speciale nel servizio metadati gestiti. In realtà viene creato un gruppo master denominato "Persone" e vengono popolati tre set di termini: Reparto (Department), Posizione (Job Title) e Ubicazione (Location). NOTA: non garantisco che siano effettivamente presenti tutti e tre i set di termini quando viene distribuito il prodotto, È possibile che ve ne siano solo due. Durante il processo di importazione del profilo, ogni set di termini verrà popolato con valori univoci per tutti gli utenti per ognuna di queste proprietà. Questo è molto utile, perché quando controllo MMS, posso osservare che nell'elenco dei reparti è incluso "Vendite" (Sales), dal momento che alcuni utenti sono associati a tale valore nell'attributo Reparto in Active Directory:

Passiamo ora alla creazione di una regola di query. Come ho già affermato nel mio primo post sulle regole di query (https://blogs.msdn.com/b/sharepoint_it/archive/2012/09/20/utilizzo-di-regole-di-query-tipi-di-risultati-e-modelli-di-visualizzazione-per-un-report-di-ricerca-delle-vendite-personalizzato-in-sharepoint-2013.aspx), è necessario innanzitutto impostare la condizione in base alla quale si attiva la regola. In questo caso utilizzeremo l'opzione Corrispondenza avanzata testo query (Advanced Query Text Match) e selezioneremo l'ultima impostazione, ovvero La query contiene una voce in questo dizionario: (Query contains an entry in this dictionary). Ora è presente una piccola freccia di selezione, che può essere leggermente fuorviante. Quello che ci interessa effettivamente è fare clic sul collegamento immediatamente sottostante Importa da tassonomia. In questo modo vedremo un selettore MMS standard. Sarà sufficiente espandere l'istanza di MMS locale e fare clic sul set di termini Reparto (Department), dal momento che desidero che la regola si attivi quando nel testo nella query è contenuta una parola che corrisponde a un Reparto dell'organizzazione.

Per la parte successiva della regola, seleziono tutte e tre le caselle di controllo per i termini della query. Se pertanto un'intera query corrisponde al nome di un reparto oppure inizia o termina con il nome di un reparto, desidero che la regola venga attivata. Infine, per l'ultima parte della configurazione della regola, in presenza di una corrispondenza desidero assegnare la corrispondenza a {subjectTerms} e i termini restanti ad {actionTerms}. Se utilizziamo quindi l'esempio sopra riportato per ottenere informazioni sulla "gestione vendite", poiché i termini della query iniziano con "vendite", che è un valore di reparto valido in MMS, la regola di query dovrebbe essere soddisfatta. "Vendite" corrisponderà a {subjectTerms} e "gestione" corrisponderà ad {actionTerms}. La configurazione sarà simile alla seguente:  

Ora quando la regola viene attivata, desidero aggiungere alcune persone del reparto Vendite nella parte superiore dei risultati della query. Inizio dall'ultima parte della regola di query, ovvero l'azione (action) da intraprendere. Faccio clic sul collegamento Aggiungi blocco di risultati e accedo alla finestra di dialogo corrispondente. In questo caso desidero aggiungere un blocco di risultati che visualizzi i risultati degli utenti. A tale scopo, faccio clic sull'elenco a discesa Cerca in questa origine e cambio la selezione da Origine della query in Risultati di ricerca utenti locali (sistema) . Eseguo subito queste operazioni in modo che il generatore di query utilizzi questa origine quando modifico e verifico la query. Sulla base della regola corrispondente, in questo modo ho la certezza che il reparto trovato sarà incluso nel termine speciale "{subjectTerms}". A tale scopo, faccio clic sul pulsante Avvia il generatore di query in modo da poter modificare la query. Elimino l'eventuale testo esistente nell'area di modifica del testo della query e quindi faccio clic sull'elenco a discesa Filtro proprietà (Property filter) e seleziono l'opzione --Mostrare tutte le proprietà gestite--. L'elenco a discesa viene ripopolato con tutte le proprietà gestite e da tale elenco seleziono Reparto (Department). Nell'elenco a discesa del qualificatore cambio l'impostazione da "Contiene" in "Uguale a" (Equals), nell'elenco a discesa Selezionare un valore seleziono {subjectTerms} - la voce di dizionario corrispondente da Reparto e quindi faccio clic sul pulsante Aggiungi filtro proprietà (Add property filter). La configurazione è la seguente: 

La configurazione sta procedendo correttamente. Ora per aggiungere un tocco personale faccio clic sulla scheda Ordinamento (Sorting) nel generatore di query. In questo caso anziché limitarmi a utilizzare il modello di ordinamento predefinito, eseguirò l'ordinamento in base alla distanza sociale dal momento che visualizzerò utenti. Oltre a mostrare gli utenti nei risultati, l'elenco di utenti sarà ordinato in base a quelli più vicini a me in termini di distanza sociale. A tale scopo, utilizzo l'elenco a discesa Modello di classificazione (Ranking Model) e seleziono Modello di distanza sociale di Ricerca utenti (People Search Social Distance Model), come indicato di seguito:

Ora posso fare clic sulla scheda Test e provare la nuova query. Per impostazione predefinita, dovrebbero visualizzarsi zero risultati, poiché non è presente un valore per la variabile {subjectTerms}. Per verificare la query con criteri di query reali, fate clic sul collegamento Mostra altro, digitate vendite nella casella di modifica {subjectTerms}*: e quindi fate clic sul pulsante Test query. Eseguo il test con diversi modelli di classificazione per verificare che funzioni tutto correttamente. Poiché è tutto corretto, faccio clic su OK per salvare le modifiche apportate alla query.

L'ultima operazione che ora desidero eseguire per la regola di query consiste nel visualizzare un collegamento alla fine del blocco, su cui fare clic per trovare tutte le persone che lavorano nel reparto che è stato trovato con la query. Prima di procedere desidero chiarire un problema: una delle immagini che ho inserito con alcuni dei risultati finali include un collegamento MOSTRA ALTRO. Per questo post, ho combinato in realtà due immagini, una con il collegamento "MOSTRA ALTRO" e l'altra senza. Il motivo è dovuto al fatto che la funzionalità del collegamento "MOSTRA ALTRO" non è uniforme nella versione beta 2. Tutti i collegamenti dovrebbero essere risolti da RTM, ma per il momento non riesco quasi mai a visualizzarli. Ho semplicemente utilizzato una schermata di un primo set di risultati in cui era incluso il collegamento. Spiego questo per evitare che vi sentiate frustrati se utilizzate la versione beta 2 e non sempre riuscite a visualizzare questo collegamento.

Dopo questa premessa, per implementare la funzionalità descritta nel paragrafo precedente, seleziono l'opzione Il collegamento "Altro" passa all'URL seguente ("More" link goes to the following URL) e digito quanto segue: peopleresults.aspx?k=Department:{subjectTerms} . Decido inoltre di mostrare tre corrispondenze, come descritto precedentemente, e di visualizzarle nella parte superiore dei risultati della ricerca. La finestra di dialogo Modifica blocco di risultati (Edit Result Block) completa ora è simile alla seguente:

Ora che è completa, posso fare un test. Eseguo una query per ottenere informazioni sulla "gestione vendite" (sales management pitch) e visualizzo i risultati seguenti:

Questa è la schermata in cui è visibile il collegamento "MOSTRA ALTRO" (SHOW MORE) che ho incollato in questo punto. L'aspetto importante è dato dal fatto che Rocky viene visualizzato nella parte superiore dei risultati di ricerca, dal momento che all'interno dell'organizzazione io sono il suo responsabile. In questo modo possiamo pertanto osservare il funzionamento dell'algoritmo della classificazione basata sulla distanza sociale. Se posiziono il puntatore su una delle persone visualizzate nei risultati, possono visualizzare un elenco di documenti che hanno pubblicato recentemente:

Infine, facendo clic sul collegamento MOSTRA ALTRO (SHOW MORE) viene visualizzata la pagina dei risultati della ricerca utenti in cui sono elencate tutte le persone che lavorano nel reparto Vendite. Posizionando il puntatore su uno di questi utenti, è possibile verificare i risultati che hanno conseguito, visualizzare la pagina del profilo corrispondente e così via.

Si conclude così il nostro esercizio. Abbiamo eseguito un'operazione utile per i clienti e abbiamo utilizzato le nuove regole di query e le funzionalità di importazione dei profili in SharePoint 2013 per creare una soluzione che non prevede l'utilizzo di codice e offre NUMEROSE funzionalità. Mi auguro che continuerete a prendere in considerazione e utilizzare le regole di query.

Questo è un post di blog localizzato. L'articolo originale è disponibile in Integrating People Metadata In Content Searches Using Query Rules in SharePoint 2013.