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

NoSQL Discussion :

[ElasticSearch] Requetes dates multiples


Sujet :

NoSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de olivier1969
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 153
    Par défaut [ElasticSearch] Requetes dates multiples
    Bonjour,

    Je cherche à faire une requête de ce type :

    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
    GET /journal/_search
    {
        "query": {
            "bool": {
                "must": { "terms": {"alarmeId": [17512]}},
                "must_not": {"match_phrase": {"libelle": "Désactivation d'alarme"}},
                "filter" : {
                  "or" :[
                      {"range": {"timestamp": {"gte": 1643324589240, "lte": 1643324589242}}},
                      {"range": {"timestamp": {"gte": 1643349485963, "lte": 1643349485965}}}
                  ]
                }
            }
        }
    }
    mais malgré mes différentes tentatives je sèche.

    Merci pour votre aide

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Par défaut Documents? Mapping?
    Difficile à dire ce qui se passe sans voir tes documents qui sont sensé matcher ni ton mapping.
    La requête semble correcte comme ça à la lecture.

    L'idéal serait de fournir un script complet qui permet de rejouer tes données.
    C'est ce qu'on demande sur le forum Elastic en général.

    Y a t'il un message d'erreur sinon ?

  3. #3
    Membre éprouvé Avatar de olivier1969
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 153
    Par défaut
    Voici l'erreur :

    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
    17
    18
    19
    20
    21
    {
      "error" : {
        "root_cause" : [
          {
            "type" : "parsing_exception",
            "reason" : "[or] query malformed, no start_object after query name",
            "line" : 7,
            "col" : 21
          }
        ],
        "type" : "x_content_parse_exception",
        "reason" : "[7:21] [bool] failed to parse field [filter]",
        "caused_by" : {
          "type" : "parsing_exception",
          "reason" : "[or] query malformed, no start_object after query name",
          "line" : 7,
          "col" : 21
        }
      },
      "status" : 400
    }
    Ce qui me laisse penser que ma requête n'est pas correcte ...

    les données sont de ce type :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
        {
            "_index" : "journal",
            "_type" : "_doc",
            "_id" : "8qfHnX4Bpo1enmwaRHS6",
            "_score" : 2.0,
            "_source" : {
              "alarmeId" : 17512,
              "date" : 1643324589241,
              "instance" : "Management principal",
              "etat" : 0,
              "source" : "EPDG_PMAS_11",
              "typeEec" : "SFTP",
              "classe" : "M",
              "module" : "Recovery",
              "urgence" : "AID",
              "typeSrc" : "EEC",
              "libelle" : "Arrêt de collecte pour EEC: EPDG_PMAS_11, dernier fichier reçu le : 28-01-2022 00:00:09:240",
              "duplication" : true,
              "timestamp" : 1643324589241,
              "IdStr" : "17512",
              "workerId" : 1
            }
          },
          {
            "_index" : "journal",
            "_type" : "_doc",
            "_id" : "CcjinX4B11MnU535ufMS",
            "_score" : 2.0,
            "_source" : {
              "alarmeId" : 17512,
              "date" : 1643326388497,
              "instance" : "Management principal",
              "etat" : 0,
              "source" : "EPDG_PMAS_11",
              "typeEec" : "SFTP",
              "classe" : "M",
              "module" : "Recovery",
              "urgence" : "AID",
              "typeSrc" : "EEC",
              "libelle" : "Arrêt de collecte pour EEC: EPDG_PMAS_11, dernier fichier reçu le : 28-01-2022 00:30:08:496",
              "duplication" : true,
              "timestamp" : 1643326388497,
              "IdStr" : "17512",
              "workerId" : 1
            }
          },

  4. #4
    Membre éprouvé Avatar de olivier1969
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 153
    Par défaut
    Celle ci fonctionne bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    GET /journal/_search
    {
        "query": {
            "bool": {
                "must": { "terms": {"alarmeId": [17512]}},
                "must_not": {"match_phrase": {"libelle": "Désactivation d'alarme"}},
                "filter" : {"range": {"timestamp": {"gte": 1643324589240, "lte": 1643324589242}}}
            }
        }
    }
    C'est le 'or' qui me pose problème

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Par défaut Or query n'existe pas
    En fait Or query n'existe pas.

    Utilise à la place une bool query avec deux clauses should.

  6. #6
    Membre éprouvé Avatar de olivier1969
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 153
    Par défaut
    merci , je teste demain ....

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Par défaut Sql
    Si jamais tu préfères faire du sql, il y a ceci: https://www.elastic.co/guide/en/elas...xpack-sql.html

    Oui, le query dsl est verbeux mais parce qu'il te permet d'accéder à énormément d'options (sur tu ne vois pas ici).

    Tu peux aussi utiliser le query string query, qui te permet d'écrire cette requête en une ligne, mais personnellement je n'aime pas car au final c'est moins flexible, moins clair.

  8. #8
    Membre éprouvé Avatar de olivier1969
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 153
    Par défaut
    Effectivement le SQL reste très lisible , mais bon , le but étant pour moi d'apprendre , je me 'contente' de la réponse de 'tusji' .

    Aussi le requêtage dont j'ai besoin étant dans du scripting python , je trouve assez simple de fabriquer mes requêtes qui se font en fonction d'une dizaine de paramètres que "j'encapsule" dans du json.

    Bref c'est plus simple pour moi.

    Merci à tous

    PS : je garde aussi l'idée du SQL sous le coude au cas où...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Derby] Requete date courante sur un champ Timestamp
    Par spekal dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/09/2006, 10h54
  2. Requete date() sur du texte ?
    Par BOTIGUA dans le forum Access
    Réponses: 4
    Dernier message: 29/04/2006, 12h53
  3. Requete Insert Multiple
    Par tonton93 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 22/03/2006, 11h36
  4. [requete] Date de création d'une base oracle.
    Par Cyborg289 dans le forum Oracle
    Réponses: 2
    Dernier message: 14/02/2006, 11h14
  5. requete date sql
    Par tommath dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/08/2004, 17h20

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