Je suis nouveau sur Elasticearch et je tente depuis 2 jours d’insérer des données dans Elasticearch. J'ai trouvé sur Google qu'il y a beaucoup de pages pour aider à créer un index (je ne suis pas clair sur "index", ça veut dire "insérer" en d'autres termes?) Alors beaucoup d'endroits donnent une commande curl, et je ne savoir où exécuter ces lignes de code pour insérer des données. Exemple:
curl -XPOST "http://[localhost]:9200/indexname/typename/optionalUniqueId" -d '{ "field" : "value" }'
J'utilise Windows 7 et j'ai installé Java et exécute elasticsearch avec succès. Quelqu'un pourrait-il m'indiquer plus de détails sur la manière d'insérer des données dans Elasticearch
Merci beaucoup
Vous devez d’abord installer le binaire curl
sur votre PC. Vous pouvez le télécharger à partir d'ici .
Après cela, décompressez-le dans un dossier. Disons C:\curl
. Dans ce dossier, vous trouverez curl.exe
fichier avec plusieurs .dll
des dossiers.
Ouvrez maintenant une invite de commande en tapant cmd
à partir du start menu
. Et tapez cd c:\curl
ici et cela vous mènera au dossier curl. Exécutez maintenant la commande curl
que vous avez.
Une chose, Windows ne prend pas en charge les guillemets simples autour des champs. Donc, vous devez utiliser des guillemets doubles. Par exemple, j'ai converti votre commande curl en une commande appropriée.
curl -H "Content-Type: application/json" -XPOST "http://localhost:9200/indexname/typename/optionalUniqueId" -d "{ \"field\" : \"value\"}"
Laissez-moi vous expliquer clairement .. Si vous connaissez rdbms ... Index est database .. Et le type d’index est table .. Il signifie index est une collection de types d’index.
dans NOSQL .. Index correspond à la base de données et le type d’index aux collections. Groupe de collection en tant que base de données ..
Pour exécuter ces requêtes ... Vous devez installer CURL pour Windows.
Curl n’est autre qu’un outil de repos en ligne de commande. Si vous voulez un outil graphique, essayez
Sense plugin pour chrome ...
J'espère que ça aide..
Pour tester et essayer les requêtes curl de Windows, vous pouvez utiliser le client Postman Chrome. Il est très simple à utiliser et très puissant.
Ou comme suggéré, vous pouvez installer cURL util.
Voici un exemple de demande de boucle.
curl -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
"user" : "Arun Thundyill Saseendran",
"post_date" : "2009-03-23T12:30:00",
"message" : "trying out Elasticsearch"
}' "http://10.103.102.56:9200/sampleindex/sampletype/"
Je commence aussi à explorer et à apprendre ES dans un vaste domaine. Alors s'il vous plaît laissez-moi savoir si vous avez d'autres doutes.
EDIT: le nom de l'index et le nom du type ont été mis à jour afin qu'ils soient en minuscules afin d'éviter les erreurs et de respecter les conventions.
J'ai commencé par utiliser curl
, mais depuis lors, j'ai migré pour utiliser kibana
. Voici quelques informations supplémentaires sur la pile ELK de elastic.co (recherche élastique, Kibana): https://www.elastic.co/elk-stack
Avec kibana, vos requêtes POST
sont un peu plus simples:
POST /<INDEX_NAME>/<TYPE_NAME>
{
"field": "value",
"id": 1,
"account_id": 213,
"name": "kimchy"
}
Si vous utilisez KIBANA avec elasticsearch, vous pouvez utiliser la demande RESt ci-dessous pour créer et insérer l'index.
CREATING INDEX:
http://localhost:9200/company
PUT company
{
"settings": {
"index": {
"number_of_shards": 1,
"number_of_replicas": 1
},
"analysis": {
"analyzer": {
"analyzer-name": {
"type": "custom",
"tokenizer": "keyword",
"filter": "lowercase"
}
}
}
},
"mappings": {
"employee": {
"properties": {
"age": {
"type": "long"
},
"experience": {
"type": "long"
},
"name": {
"type": "text",
"analyzer": "analyzer-name"
}
}
}
}
}
CRÉATION DE DOCUMENT:
POST http://localhost:9200/company/employee/2/_create
{
"name": "Hemani",
"age" : 23,
"experienceInYears" : 2
}
Pour éviter l’utilisation des plugins curl ou Chrome, vous pouvez simplement utiliser les fenêtres intégrées Powershell. À partir de la fenêtre de commande Powershell, exécutez
Invoke-WebRequest -UseBasicParsing "http://127.0.0.1:9200/sampleindex/sampleType/" -
Method POST -ContentType "application/json" -Body '{
"user" : "Test",
"post_date" : "2017/11/13 11:07:00",
"message" : "trying out Elasticsearch"
}'
Notez que le nom de l'index DOIT être en minuscule.