Paginar resultados da origem da pesquisa

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 2 min. de leitura
  • Limite o número de resultados que uma origem de pesquisa exibe de uma só vez para melhorar o desempenho. Os usuários finais podem carregar mais resultados conforme necessário.

    Antes de Iniciar

    Função necessária: administrador ou sp_admin

    Por Que e Quando Desempenhar Esta Tarefa

    Se estiver adicionando paginação a uma origem de pesquisa simples, defina os resultados da paginação no registro de origem de pesquisa como verdadeiro. No entanto, se adicionar paginação a uma origem de pesquisa avançada, você também deverá modificar o script de busca de dados para lidar com várias páginas de resultados. Quando um usuário carrega mais resultados de pesquisa, a origem de pesquisa executa novamente o script de busca de dados.
    Nota:
    Se estiver paginando uma origem de pesquisa com aspectos avançados, não modifique o script de geração de aspecto para carregar aspectos com base nos resultados de cada página. Os aspectos devem permitir que os usuários finais filtrem resultados de um conjunto de resultados inteiro, em vez de resultados específicos da página.

    Procedimento

    1. Na IU da plataforma, navegue até Portal de serviços > Fontes de pesquisa.
    2. Abra uma origem de pesquisa à qual adicionar paginação.
    3. Na guia Fonte de dados, defina Paginar resultados como verdadeiro.
      A habilitação deste campo adiciona um botão Carregar mais resultados à página de resultados da pesquisa. Este sinalizador habilita automaticamente a paginação para origens de pesquisa simples.
    4. Opcional: Se a origem de pesquisa for avançada, modifique o script de busca de dados para lidar com várias páginas de resultados de pesquisa.
      Atualize o script de busca de dados usando uma das seguintes APIs GlideRecord, dependendo do escopo da origem de pesquisa.
      Escopo Método
      Global setLocation() em GlideRecord - Global
      Aplicação com escopo chooseWindow() em GlideRecord - com escopo

      A seguir está um exemplo de script de busca de dados para uma origem de pesquisa global que consulta a tabela de incidentes e pagina os resultados.

      // queryLocation is a special value injected into the script,
      // which holds the query_location property of the last item
      // in the previously fetched result set
      (function(query, queryLocation, count) {
      	var results = [];
      	var now_GR = new GlideRecord("incident");
      	gr.addQuery("123TEXTQUERY321", query);
      	gr.query();
      	// Here, we are utilizing queryLocation to implement pagination.
      	// In practice, there are many other ways to use the
      	// query_location value of the last item in the previous
      	// result set to implement pagination. Your implementation
      	// will vary by use case.
      	gr.setLocation(queryLocation - 1);
      
      	var resultCount = 0;
      	while(gr.next() && resultCount < count + 1) {
      		results.push({
      			label: gr.getDisplayValue(),
      			short_description: gr.getValue("short_description"),
      			// Here, we are populating the query_location
      			// property of each result item. This is how the
      			// framework knows what value to pass into the
      			// next fetched search result script execution
      			query_location: gr.getLocation(),
      			primary: gr.getDisplayValue(),
      			state: gr.getDisplayValue("state")
      		});
      		resultCount++;
      	}
      
      	if (results.length == 0)
      		return results;
      
      	if(results.length > count) {
      		results.pop();
      	} else {
      		// In order to indicate that a result in the result
      		// set is the final result (that there are
      		// no more results to be fetched), add this property
      		// to the final element in your result set.
      		results[results.length - 1].isLastResult = true;
      	}
      	return results;
      })(query, queryLocation, count, facets);

      Para obter um exemplo adicional, consulte a fonte de pesquisa da Base de conhecimento.

    5. Defina o número máximo de resultados por consulta para a origem de pesquisa no widget Página de pesquisa ou nas opções de instância do widget Pesquisa de aspectos.

    Resultado

    A página de pesquisa retorna somente o número definido de resultados de uma só vez. Quando um usuário seleciona Carregar mais resultados, a origem de pesquisa executa novamente a consulta ou o script de busca de dados.

    Resultados paginados