Search como limitar minha pesquisa a uma ou mais listas

blog-08Bom, quem já precisou criar um "Result Source" dentro de um Site Collection no SharePoint 2013 sabe o quanto isso é desafiador. O "Result Source" é a funcionalidade equivalente ao Escopo de Busca que havia na versão do SharePoint 2010, que provê ao usuário final, dono do Site Collection criar seus próprios escopos de busca, e disponibiliza-los aos usuários do seu site.

Mas apesar de ser algo aparentemente simples, a grande dificuldade é fazer a query e obter o resultado desejado. Bom, vou tentar auxiliar na questão de como fazer essa query dentro do Site Collection, e a partir dela você poderá usa-la para criar sua própria navegação de pesquisa customizada.

Primeiramente precisamos ter em mente que o Search do SharePoint 2013 necessita estar configurado, e que os objetos em questão precisam estar sendo indexados e aparecerem na busca geral. Partindo deste princípio, podemos iniciar o tutorial para configurar o “Result Source”. Para o exemplo a seguir, foram criadas duas listas customizadas.

  1. Vá nas configurações do Site Collection e navegue até a seção “Site Collection Administration
  2. Nessa seção clique no link da opção “Search Result Sources
  3. Dentro da janela “Manage Result Sources” clique no botão “New Result Source
  4. Nomeie o seu novo escopo, e na opção “Query Transform” clique no botão “Launch Query Builder
  5. Na caixa “Query Text” acrescente a expressão abaixo:

{searchTerms} (contentclass:STS_List OR contentclass:STS_List_DocumentLibrary) ListID:5D90E569-A8F4-43AC-BFE9-0B06ABEE3A4F OR ListID:2A50DAB4-9126-4436-AD72-48C78F24A893

Vamos entender a expressão:

Primeiramente, o item {searchTerms} , permitirá que o que for passado na caixa de pesquisa, realmente será pesquisado, caso ela seja removida, a pesquisa trabalhará com um Highlight nos nomes.

Segundo item (contentclass:STS_List OR contentclass:STS_List_DocumentLibrary) , estou filtrando somente listas e bibliotecas, pois eu não desejo outro conteúdo.

E por último estou dizendo quais as listas eu desejo que ele pesquise, ListID:5D90E569-A8F4-43AC-BFE9-0B06ABEE3A4F OR ListID:2A50DAB4-9126-4436-AD72-48C78F24A893, usando o operador OR para dizer que se algo não for encontrado na lista A será na lista B.

Essa é uma expressão simples, apesar de não ser muito amigável.