Partage
  • Partager sur Facebook
  • Partager sur Twitter

Maîtrisez les bases de données NoSQL

La commande CURL du cours échoue à alimenter Elasticsearch

    1 février 2018 à 19:35:22

    Bonjour,

    j'ai un petit soucis avec le cours https://openclassrooms.com/courses/maitrisez-les-bases-de-donnees-nosql/etudiez-le-fonctionnement-d-elasticsearch

    J'ai installé Elasticsearch, il répond bien sur le port 9200 et m'affiche le json de version (6.1.3)

    J'ai installé curl (sudo apt-get), il m'a installé la version 7.47

    Partant de là, je downloade le fichier movies, je dézippe (j'ai essayé sous windows et sous Linux au cas où), et je colle la commande

    curl -XPUT localhost:9200/_bulk --data-binary @movies_elastic.json

    depuis le répertoire ou j'ai dézippé les fichiers

    Bah pouf ! perdu...

    {"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}

    Quelqu'un saurait me débloquer ?

    Merci 

    EDIT : 

    J'ai eu ma réponse sur le workplace openclassrooms

    La commande du cours est incomplète (du moins sur Linux, peut-être qu'elle marche telle quelle sur macOs)

    Il faut ajouter -H suivi du type de document, ici : 

    curl -XPUT localhost:9200/_bulk -H 'Content-Type: application/json' --data-binary @movies_elastic.json

    -
    Edité par SandroPiazzini 2 février 2018 à 12:56:28

    • Partager sur Facebook
    • Partager sur Twitter
      5 avril 2018 à 21:38:04

      Bonjour,

      Même en ajoutant ceci : -H 'Content-Type: application/json'

      ça ne fonctionne pas ...

      • Partager sur Facebook
      • Partager sur Twitter
        9 avril 2018 à 15:34:38

        Bonjour,

        J'ai rencontré la même erreur, au final c'est juste que les syntaxes changent à chaque version d'elasticsearch

        Je suis redescendu en 5.6.2 et ça marche

        • Partager sur Facebook
        • Partager sur Twitter
          11 avril 2018 à 20:28:00

          Merci beaucoup !

          Ca fait plus d'une heure que je cherche

          • Partager sur Facebook
          • Partager sur Twitter
            30 avril 2018 à 18:27:10

            Bonjour,

            Le tutoriel utilise la version 5.6.2 d'ElasticSearch

             L'installation montrée ici correspond à la version 5.6.2 d'Elasticsearch.

            Or, la version actuelle (30 avril 2018) d'ElasticSearch est celle de 6.2.4.

            On peut aussi lire dans la documentation officielle que cette mise à jour supprime certains mapping types (cfr. https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html) qui seront totalement supprimés lors de la version 7.0.0.

            Peut-être que votre erreur est due à ce changement. Si c'est le cas, je vous suggère d'aller lire cet article.

            J'espère que cela vous aidera :)

            -
            Edité par phenric 30 avril 2018 à 18:30:27

            • Partager sur Facebook
            • Partager sur Twitter
              16 mai 2018 à 13:41:36

              Bonjour, 

              je débute également en élasticsearch

               J'ai le même problème, la commande correspond à la version 5.6.2 et non à la version actuelle 6.2.4

              sans devoir réinstaller la version précédente, quelqu'un pourrait -il m'aider à trouver ce qu'il faut changer dans la commande -XPUT? 

              (je suis sous windows) 

              @phenric : j'ai lu la doc mais je ne suis pas sure de tout comprendre franchement

              Merci de votre aide

              • Partager sur Facebook
              • Partager sur Twitter
                18 mai 2018 à 9:44:50

                Bonjour,

                Essayez les 3 actions suivantes :

                1 : Placez vous dans le répertoire contenant le fichier JSON des données à l'aide de la commande cd afin de juste avoir le nom du fichier source à saisir dans votre commande XPUT :

                                                                           cd E:\Data\RawData\movies_for_elastic_json\

                2 : Remplacez les quotes du header décrivant le type de données par des doubles quotes :

                                                                           -H"Content-Type: application/json"

                3 : Préfixez le nom du fichier JSON par un @ pour éviter les problèmes d'encodage :

                                                                           @movies_elastic.json

                Cela devrait vous donner une instruction curl ayant la syntaxe suivante :

                  curl -XPUT localhost:9200/_bulk -H"Content-Type: application/json" --data-binary @movies_elastic.json    

                Normalement, cela devrait désormais fonctionner sans devoir changer la version d'Elastic Search. Si toutefois, le message d'erreur persistait, je vous recommanderais alors de faire une tentative avec PowerShell en exécutant la commande suivante :

                Invoke-RestMethod http://localhost:9200_bulk --data-binary @movies_elastic.json                                                         

                -
                Edité par FabienMonnery 18 mai 2018 à 9:48:28

                • Partager sur Facebook
                • Partager sur Twitter
                  25 mai 2018 à 10:17:03

                  Merci beaucoup Fabien!!

                  Ca a marché !

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Maîtrisez les bases de données NoSQL

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown