---
sourceDocument: Interface utilisateur de la Now Platform Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/platform-user-interface

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Interface utilisateur de la Now Platform Xanadu

ft:clusterId :

    - platux

bundleId :

    - platux

workflow :

    - Platform


---

# Paginer les résultats de la source de recherche

# Paginer les résultats de la source de recherche {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes de lecture

Limitez le nombre de résultats qu'une source de recherche affiche simultanément pour améliorer les performances. Les utilisateurs finaux peuvent charger plus de résultats au besoin.

## Avant de commencer

Rôle requis : admin ou sp_admin

## Pourquoi et quand exécuter cette tâche

Si vous ajoutez la pagination à une source de recherche simple, définissez Paginate results on the search source record (vrai). Toutefois, si vous ajoutez la pagination à une source de recherche avancée, vous devez également modifier le script d'extraction de données pour gérer plusieurs pages de résultats. Lorsqu'un utilisateur charge plus de résultats de recherche, la source de recherche réexécute le script d'extraction de données.  
Remarque :  
Si vous paginez une source de recherche avec des facettes avancées, ne modifiez pas le script de génération de facette pour charger les facettes en fonction des résultats de chaque page. Les facettes doivent permettre aux utilisateurs finaux de filtrer les résultats d'un ensemble de résultats, plutôt que des résultats spécifiques à une page.

## Procédure

1. Dans l'interface utilisateur de la plateforme, accédez à Portail de servicesSources de recherche.
2. Ouvrez une source de recherche à laquelle ajouter la pagination.
3. Dans l'onglet Source de données , définissez Paginate results (Paginate results ) sur true.  
   L'activation de ce champ ajoute un bouton Charger plus de résultats à la page des résultats de recherche. Ce marqueur active automatiquement la pagination pour les sources de recherche simples.
4. **Facultatif :** Si la source de recherche est avancée, modifiez le script d'extraction de données pour gérer plusieurs pages de résultats de recherche.  
   Mettez à jour le script d'extraction de données à l'aide de l'une des API GlideRecord suivantes, en fonction du champ d'application de la source de recherche.  
   {#paginate-scripted-search-source__table_gh1_ltj_jdb__entry__2}

   | Périmètre | Méthode |
   |-|-|
   | Global | setLocation() dans [GlideRecord : global](https://www.servicenow.com/docs/access?context=c_GlideRecordAPI&version=xanadu&pubname=xanadu-api-reference&ft:locale=en-US) |
   | Application incluse dans le périmètre | chooseWindow() dans [GlideRecord - Inclus dans le champ d'application](https://www.servicenow.com/docs/access?context=c_GlideRecordScopedAPI&version=xanadu&pubname=xanadu-api-reference&ft:locale=en-US) |
   [ ]

   {#paginate-scripted-search-source__table_gh1_ltj_jdb}

   Voici un exemple de script d'extraction de données pour une source de recherche globale qui interroge la table d'incidents et pagine les résultats.  

       // 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);

   Pour un exemple supplémentaire, consultez la source de recherche de la base de connaissances.
5. Définissez le nombre maximal de résultats par requête pour la source de recherche dans les options d'instance de widget Page de recherche ou Recherche à facettes.

## Résultats

La page de recherche renvoie uniquement le nombre défini de résultats à la fois. Lorsqu'un utilisateur sélectionne Charger plus de résultats, la source de recherche réexécute la requête ou le script d'extraction de données.


