Integrando metadados de pessoas em pesquisas de conteúdo usando regras de consulta no SharePoint 2013

Artigo original publicado na segunda-feira, 20 de agosto de 2012

Certo, admito que o título ficou um pouco estranho. Então, sobre o que o Steve está falando aqui? Bem, deixe-me colocar deste modo: há alguns dias, vi uma pergunta do tipo "Tenho colegas que trabalham para diferentes departamentos em minha organização (Vendas, Financeiro, etc). Quando alguém digita uma consulta para algo do tipo 'argumento de gerenciamento de vendas', posso fazer com que também mostre pessoas que trabalham no departamento de vendas?". Certo, parece um modo interessante de usar o novo recurso de regras de consulta do SharePoint 2013.

Para começar, vamos retornar e ver um recurso de habilitação relacionado que usaremos aqui. No SharePoint 2013, quando você realiza uma importação de perfil do Active Directory, ele preenche automaticamente um conjunto de termos especial no Serviço de Metadados Gerenciados (MMS). Na realidade, ele cria um grupo mestre chamado "Pessoas" e preenche três conjuntos de termos: Departamento, Cargo e Local (OBSERVAÇÃO: não posso garantir que os três ainda estarão disponível quando o produto for lançado, talvez sejam apenas dois). Durante o processo de importação de perfil, cada conjunto de termos será preenchido com valores exclusivos em todos os usuários para cada uma dessas propriedades. Isso realmente ajuda muito em relação a este problema pois, quando observo meu MMS, vejo que, na lista de Departamentos, ele inclui "Vendas", já que tenho usuários com esse valor no atributo Departamento no AD:

OK, isso é incrível. Por isso, agora criaremos uma regra de consulta. Conforme mencionei em meu primeiro post sobre regras de consulta (https://blogs.msdn.com/b/sharepoint_br/archive/2012/09/20/como-usar-regras-de-consulta-tipos-de-resultado-e-modelos-de-exibi-231-227-o-para-um-relat-243-rio-de-vendas-de-pesquisa-personalizada-no-sharepoint-2013.aspx), a primeira coisa que faremos é definir a condição de acionamento da regra. Neste caso, usaremos a opção Correspondência de Texto de Consulta Avançada e selecionaremos a última opção, que é A consulta contém uma entrada neste dicionário: Agora ela tem um seletor suspenso, o que é ruim, pois ele pode gerar alguns equívocos. O que realmente queremos fazer aqui é clicar no link Importar da taxonomia, diretamente abaixo dele. Quando fizermos isso, veremos um seletor MMS padrão. Por isso, tudo o que faço é expandir a instância MMS local e clicar no conjunto de termos Departamento, pois desejo que minha regra seja acionada quando o texto da consulta contiver uma palavra que seja um Departamento de minha organização.

Para a próxima parte de minha regra, marco as três caixas de seleção para levar em consideração os termos da consulta. Por isso, se uma consulta inteira for igual ao nome do departamento ou se começar/terminar com o nome de um departamento, a regra será acionada. Por fim, para a última parte da configuração da regra, se houver uma correspondência, quero atribui-la a {subjectTerms} e os termos restantes a {actionTerms}. Por isso, se usarmos o exemplo acima para pesquisar "argumento de gerenciamento de vendas", como os termos da consulta possuem "vendas", que é um valor de departamento válido no MMS, minha regra de consulta gerará uma correspondência: "ventas" será {subjectTerms} e "argumento de gerenciamento de" será {actionTerms}. Veja como é essa configuração:

Quero que, quando a regra for acionada, algumas das pessoas do Departamento de Vendas sejam adicionadas ao topo dos resultados da consulta. Por isso, começo a trabalhar na próxima parte da minha regra de consulta, a ação que será executada. Clico no link Adicionar Blocos de Resultados e abro a caixa de diálogo. Neste caso, desejo adicionar um bloco de resultados que exibirá pessoas. Por isso, a primeira coisa a fazer é clicar na lista suspensa Pesquisa esta Fonte e alterá-la de Fonte original da consulta para Resultados de Pessoas Locais (Sistema) . Faço isso primeiro para que o construtor de consultas use esse fonte quando eu modificar e testar a consulta. Tendo feito isso, com base em minha regra de correspondência, sei que qualquer departamento encontrado estará no termo especial "{subjectTerms}". Para usar esse recurso, clico no botão Iniciar o Construtor de Consultas para que possa modificar a consulta. Excluo todo o texto existente na área de edição de texto da consulta, clico na lista suspensa Filtro de propriedade e clique na opção "Mostrar Todas as Propriedades Gerenciadas". Essa ação permite que a lista suspensa seja preenchida novamente com todas as propriedades gerenciadas. Nessa lista, seleciono Departamento. Altero a lista suspensa de qualificador de "Contém" para "É igual a" e na lista suspensa Selecionar valor, seleciono {subjectTerms} - a entrada do dicionário correspondente de Departamentoe clico no botão Adicionar filtro de propriedade. Veja como fica:

Isso está evoluindo de forma bastante satisfatória. Agora, desejo adicionar algumas características mais pessoais. Para isso, clico na guia Classificação do construtor de consultas. Neste caso, em vez de simplesmente usar o modelo de classificação padrão (já que não mostrarei pessoas), classificarei por distância social. Não mostrarei apenas pessoas nos resultados, mas a lista de pessoas será ordenada com base nos que estão mais próximos de mim em relação à distância social. Para isso, basta usar a lista suspensa Modelo de Classificação e selecionar Modelo de distância social de pesquisa de pessoas, assim:

Agora, posso clicar na guia Teste e testar minha nova consulta. Por padrão, não serão exibidos resultados, isso porque não há um valor para a variável {subjectTerms}. Para fazer o teste com critérios de pesquisa reais, clique no link Mostrar Mais e digite "vendas" na caixa de edição "{subjectTerms}*:". Em seguida, clique no botão Testar consulta. Eu faço testes com modelos de classificação diferentes para garantir que tudo esteja funcionando conforme desejado (e está). Em seguida, clico no botão OK para salvar as alterações na consulta.

A última coisa a fazer agora com relação à regra de consulta é exibir um link, na parte inferior do bloco, que alguém pode clicar para encontrar todas as pessoas que trabalham em qualquer departamento localizado. Antes de continuar, preciso dizer algo para que tudo fique bem claro: tenho uma imagem que mostra os resultados finais, e você verá um link MOSTRAR MAIS. Para este post específico, eu combinei duas imagens, uma com o link MOSTRAR MAIS e outra sem. O motivo disso é que a funcionalidade do link MOSTRAR MAIS é inconsistente na versão beta. Todos os problemas deverão ser solucionados pelo RTM, mas, por enquanto, há momentos em que o link aparece para mim, mas há outros em que isso não ocorre. O fato de eu ter conseguido uma captura de tela com o link em um conjunto inicial de resultados em que estava trabalhando foi coincidência. Menciono esse fato aqui para que você não fique muito frustrado caso esteja trabalhando no beta 2 bits e note que ora o link aparece, ora não.

Dito isso, para implementar a funcionalidade descrita no parágrafo anterior, seleciono a opção 'O link "Mais" vai para a seguinte URL' e digito o seguinte: peopleresults.aspx?k=Departamento:{subjectTerms} . Também opto por mostrar três opções e, conforme descrito anteriormente, mostrá-las no topo dos resultados de pesquisa. Por isso, agora a caixa de diálogo Bloco de Resultados completa é assim:

Agora que o processo foi concluído, posso realizar os testes. Faço uma consulta de "argumento de gerenciamento de vendas" e eis os resultados:

(Observe que é aqui que você vê o link "MOSTRAR MAIS" que precisei colar neste momento). A parte legal é que Rocky é mostrado no topo dos resultados da pesquisa porque, em minha organização, sou seu gerente. Desse modo, vemos o algoritmo de classificação por distância social em funcionamento. Se eu passar o cursor do mouse sobre qualquer pessoa nos resultados, verei uma lista de documentos publicados recentemente por eles:

Por fim, quando clique no link MOSTRAR MAIS, ele me leva à página de resultados de pesquisa de pessoas, onde posso ver todas as pessoas que trabalham no departamento de vendas. Quando passo o cursor sobre qualquer um deles, posso ver o que eles têm feito, as páginas de seus perfis, etc.

Isso conclui nosso exercício. Pegamos um requisito muito importante dos clientes e usamos os novos recursos de regra de consulta e importação de perfil no SharePoint 2013 para criar uma solução que não exige codificação e fornece MUITAS funcionalidades. Espero que você continue a se aprofundar nas regras de consulta e a trabalhar com elas.

Este é um post localizado. O artigo original está em Integrating People Metadata In Content Searches Using Query Rules in SharePoint 2013