web-dev-qa-db-fra.com

Comment insérer des données dans elasticsearch

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

52
user1162069

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\"}"
61
Sabuj Hassan

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..

10
BlackPOP

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"
}
1

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
}
0
Kailash Karki

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.

0
rob