Utilizando contexto do usuário (vulgo "segmentação") nas pesquisas com SharePoint 2013
Artigo original publicado na segunda-feira, 3 de dezembro de 2012
A utilização de um contexto para representar o usuário atual em pesquisas foi algo introduzido inicialmente no FAST Search para SharePoint 2010. Caso esteja interessado em como esse recursos funcionou na época, veja este post: https://blogs.technet.com/b/speschka/archive/2009/12/09/using-custom-properties-to-create-a-fast-search-for-sharepoint-2010-user-context.aspx. No SharePoint 2013, não temos exatamente o mesmo recurso, mas há uma função para substituí-lo, chamada "segmentação de usuário". Eu não tentarei explicar os segmentos de usuário, o que são e como funcionam, pois alguém da equipe de pesquisa já fez um excelente trabalho aqui: https://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. Eu realmente o aconselho a ler esse post, pois ele é ótimo para explicar o que é esse recurso e possui um exemplo de como usá-lo.
Não estou aqui para levar os créditos, mas veja o que fiz. Quando você ler o post, verá que ele trata da criação de uma Web Part personalizada para descobrir as segmentações de usuário que devem ser aplicadas à consulta atual e, em seguida, adicioná-las à consulta. O post descreve a adição de uma segmentação de usuário com base em um propriedade do navegador. O que decidi fazer foi escrever uma Web Part que adiciona uma segmentação de usuário com base no departamento do usuário atual. Para aqueles que não sabem, quando você realiza uma importação de perfil do Active Directory no SharePoint 2013, ocorre a importação automática dos valores exclusivos de departamento para um repositório de termos especial. Isso é ótimo para personalizações com base no departamento do usuário atual.
Uma dúvida que pode surgir é: "Se vou apresentar conteúdo com base no departamento do usuário, por que não usar públicos-alvo?". É uma pergunta lógica, mas veja a diferença: o direcionamento por público-alvo é um simples interruptor liga/desliga; ou você mostra uma Web Part, ou não. Com a segmentação de usuário, posso extrair informações do perfil ou de qualquer outro local e personalizar o conteúdo mostrado. Como utilizo uma regra de consulta, posso executar uma ou mais consultas adicionais para um usuário, adicionar um resultado promovido ou até mesmo alterar a classificação de uma consulta (por exemplo, caso eu queira direcionar um conteúdo específico de modo a exibi-lo mais acima nos resultados de pesquisa com base no departamento em que o usuário trabalha). Esses são apenas alguns dos fantásticos recursos das pesquisas no SharePoint 2013.
Por isso, para ajudá-lo na utilização desse recurso, anexei todo o meu projeto de Visual Studio (o assembly, a solução e o código-fonte da Web Part compilada) da Web Part que adiciona o departamento do usuário atual à segmentação de usuário. Você pode fazer o que quiser com ele: utilize-o do jeito que está ou use-o como base para refinar ou escrever sua própria Web Part de gerenciamento de segmentação de usuário. Há alguns fatores que quero destacar a respeito do uso da segmentação de usuário e dessa Web Part quando você ler o post do link acima:
- Quando você cria uma regra de consulta, ela é configurada por padrão para consultar o catálogo do site de publicação. Caso você continue com essa opção, não obterá resultados de pesquisa. No lugar dela, selecione a opção para consultar "Todas as Fontes". A imagem da configuração da regra de consulta no post mostra isso, mas não de modo claro. Como você deve alterar o comportamento padrão para que a configuração funcione, decidi ressaltar esse aspecto.
- O post fala sobre usar uma Web Part diferente para exibir os resultados de qualquer conteúdo realçado ao utilizar a segmentação de usuário. Nesse caso (conforme o post cita), minha Web Part é herdada de ContentBySearchWebPart. Por isso, você pode usar o controle tanto para definir a segmentação de usuário como para exibir o conteúdo realçado. A única coisa um pouco diferente da descrição do post é que, quando você adicionar a Web Part à página, haverá um valor diferente na propriedade Configurações da Web Part. Em Configurações, defina a propriedade "Resultados da consulta fornecidos por" para "Esta web part".
Isso é tudo; agora, você já está pronto para continuar. Espero que você encontre cenários interessantes para segmentação de usuário em suas pesquisas. No meu caso específico, quando redigia este texto, estava direcionando treinamentos especiais para funcionários que pertenciam ao departamento "Executivo". Como resultado, quando acessam a página em que a Web Part é utilizada, eles veem este banner e um link para o treinamento de comércio interno que terão que realizar:
Esta é uma postagem de blog traduzida. Consulte o artigo original em Using User Context (AKA Segmentation) in Search with SharePoint 2013