Trier

La méthode sort

La méthode IMu::Module de la classe sort est utilisée pour ordonner un jeu de résultats une fois la recherche d’un module exécutée.

Arguments

Cette méthode sort prend deux arguments :

  • columns (colonnes)

    L’argument columns est utilisé pour spécifier les colonnes par lesquelles trier le jeu de résultats. La valeur de l’argument peut être soit une chaîne, soit une référence à un tableau de chaînes. Chaque chaîne peut être un simple nom de colonne ou un ensemble de noms de colonnes, séparés par des points-virgules ou des virgules.

    Chaque nom de colonne peut être précédé d'un + (plus) ou d'un - (moins ou tiret). Un signe + en début de nom de colonne indique que les enregistrements doivent être triés par ordre croissant. Un signe - en début de nom de colonne indique que les enregistrements doivent être triés par ordre décroissant.

    Note: Si aucun ordre de tri (+ ou -) n'est spécifié, l'ordre de tri par défaut est croissant.

  • flags (indicateurs)

    L’argument flags est utilisé pour passer un ou plusieurs indicateurs afin de contrôler la façon dont le tri est effectué. Comme pour l’argument columns, l’argument flags peut être une chaîne ou une référence à un tableau de chaînes. Chaque chaîne peut être un seul indicateur ou un ensemble d’indicateurs séparés par des points-virgules ou des virgules.

    Les indicateurs suivants permettent de définir le type de comparaison utilisé lors du tri :

    • word-based (comparaison par mot)

      Le tri ignore la ponctuation et les espaces vides (plus d'un espace entre les mots). Par exemple :

      Traveler's Inn

      sera trié comme

      Travelers Inn
    • full-text (comparaison texte intégral)

      Le tri inclut toute la ponctuation et les espaces vides. Par exemple :

      Traveler's Inn

      sera trié comme

      Traveler's Inn

      et différera donc de :

      Traveler's Inn
    • compress-spaces (Compresser les espaces vides)

      Le tri inclut la ponctuation mais ignore tous les espaces vides (à l'exception d'un espace simple entre les mots). Par exemple :

      Traveler's Inn

      sera trié comme

      Traveler's Inn

      Note: Si aucun de ces indicateurs n'est spécifié, la comparaison s'effectue par défaut par mot.

    Les indicateurs suivants modifient le comportement du tri :

    • case-sensitive (Sensible à la casse)

      Le Tri prend en considération la casse (majuscule et minuscule). Par exemple :

      Melbourne gallery

      sera trié séparément de

      Melbourne Gallery
    • order-insensitive (ordre non pris en compte)

      Les valeurs dans un champ à valeurs multiples seront triées dans l'ordre alphabétique sans tenir compte de l'ordre dans lequel elles apparaissent. Par exemple, un enregistrement dont la colonne NamRoles_tab contient les valeurs suivantes, dans cet ordre :

      1. Collection Manager
      2. Curator
      3. Internet Administrator

      et un autre enregistrement contenant les valeurs dans cet ordre :

      1. Internet Administrator
      2. Collection Manager
      3. Curator

      sera trié de la même manière.

    • null-low

      Les enregistrements comportant des colonnes vides seront placés au début du jeu de résultats plutôt qu'à la fin.

    • extended-sort

      Les valeurs qui incluent des accents seront triées séparément des autres. Par exemple :

      entrée

      sera trié séparément de

      entree

    Les indicateurs suivants peuvent être utilisés lors de la génération d'un résumé des enregistrements triés :

    • report

      Un résumé du tri est généré. Le rapport de synthèse est un objet structuré hiérarchiquement qui résume le nombre de valeurs uniques contenues dans les colonnes de tri. Consultez Valeur de retour et Exemplepour obtenir une description et une illustration de la structure renvoyée.

    • table-as-text (Convertir tableau en texte)

      Toutes les données issues de colonnes à valeurs multiples seront traitées comme une seule valeur (concaténée à l’aide de caractères de saut de ligne) dans le tableau des résultats du résumé. Par exemple, pour un enregistrement dont la colonne NamRoles_tab contient les valeurs suivantes :

      Responsable des collections, Conservateur, Administrateur Internet

      le résumé comprendra des statistiques portant sur une seule valeur :

      Collection Manager
      Curator
      Internet Administrator

      Ainsi le nombre de valeurs affichées dans la fenêtre Résultats sommaires correspondra au nombre d'enregistrements.

      Si cette option n’est pas spécifiée, chaque valeur d’une colonne à valeurs multiples sera traitée comme une valeur distincte dans le résumé. Il peut donc y avoir beaucoup plus de valeurs dans la fenêtre Résultats sommaires qu'il n'y a d'enregistrements.

Par exemple :

  1. Trier les Personnes / Organisations par prénom (ordre croissant) :
    my $parties = IMu::Module->new('eparties', $session); my $search = IMu::Terms->new(); $search->add('NamLast', 'Smith'); my $hits = $parties->findTerms($search);  $parties->sort('NamFirst'); 
  2. Trier les Personnes / Organisations par titre (ordre croissant), puis par prénom (ordre décroissant) :
    # ⋯ my $sort = [ 'NamTitle', '-NamFirst' ]; $parties->sort($sort); 
  3. Effectuer un tri des Personnes / Organisations par titre (ordre croissant) puis par prénom (ordre décroissant) en tenant compte des majuscules et des minuscules :
    # ⋯ my $sort = [ 'NamTitle', '-NamFirst' ]; my $flags = [ 'case-sensitive' ]; $parties->sort($sort, $flags);