IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

Recherche plain text parmi les champs d'objets JSON


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 104
    Points : 102
    Points
    102
    Par défaut Recherche plain text parmi les champs d'objets JSON
    Bonjour à tous,

    Je cherche à implémenter une méthode permettant de filtrer une liste A et retournant une liste B en recherchant un texte parmi les champs des objets de la liste A. J'ai deux possibilités :
    * Chercher directement dans le JSON
    * Chercher dans les objets désérialisés sous forme de List<Fullname>

    Les performances sont importantes mais pas primordiales (entre 100 et 200 entrées dans la liste A)
    Une implémentation de Lucène serait trop lourd pour ce besoin.

    Avez-vous une solution plus optimisée qu'une recherche via un for + contains ? (j'ai volontairement simplifié les champs dans l'exemple ci-dessous, il y en aurait 5 au lieu de 2).

    Merci pour vos conseils et/ou ressources.


    Exemple, avec la liste A suivante (au format JSON mais peut être la liste désérialisée) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    {
       "listA" : [
          {
              "firstname": "marcel",
              "lastname" : "dupont"
          },
          {
              "firstname": "Florent",
              "lastname" : "Rato"
          },
          {
              "firstname": "pierre",
              "lastname" : "marrant"
          }
       ]
    }
    Une recherche de la chaine "mar" doit me retourner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    {
       "listB" : [
          {
              "firstname": "marcel",
              "lastname" : "dupont"
          },
          {
              "firstname": "pierre",
              "lastname" : "marrant"
          }
       ]
    }
    Une recherche de la chaine "nt" doit me retourner la même liste car dupont, florent, marrant

  2. #2
    Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour

    Si tu es en java 8, essaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String searchString="ma";
     List<Person> filteredPerson =
                    persons.stream().filter(p -> p.getPrenom().indexOf(searchString) >= 0 || p.getNom().indexOf(searchString) >= 0).collect(Collectors.toList());
    Personnellement, je filtre une liste de 200 elements en 85ms avec cette méthode.

Discussions similaires

  1. ARTICLE :indexation textuelle et recherches plain texte.
    Par SQLpro dans le forum Développement
    Réponses: 3
    Dernier message: 04/10/2010, 13h53
  2. ARTICLE : indexation textuelle et recherches plain texte
    Par SQLpro dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/10/2010, 13h31
  3. Réponses: 0
    Dernier message: 04/10/2010, 09h13
  4. Réponses: 10
    Dernier message: 17/04/2009, 17h19
  5. [WinXP] rechercher du texte dans les fichiers
    Par arcane dans le forum Windows XP
    Réponses: 3
    Dernier message: 05/05/2006, 12h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo