web-dev-qa-db-de.com

So fügen Sie Daten in elasticsearch ein

Ich bin neu bei Elasticearch und habe 2 Tage lang versucht, einige Daten in Elasticearch einzufügen. Ich habe bei Google festgestellt, dass es viele Seiten gibt, die beim Erstellen eines Index hilfreich sind wissen, wo diese Codezeilen ausgeführt werden müssen, um Daten einzufügen. Beispiel:

curl -XPOST "http://[localhost]:9200/indexname/typename/optionalUniqueId" -d '{ "field" : "value" }'

Ich benutze Windows 7 und habe Java und elasticsearch erfolgreich ausgeführt. Kann mir jemand mehr Details zum Einfügen von Daten in Elasticearch zeigen?

Danke vielmals

52
user1162069

Sie müssen zuerst die Binärdatei curl auf Ihrem PC installieren. Sie können es herunterladen von hier .

Danach entpacke es in einen Ordner. Sagen wir C:\curl. In diesem Ordner finden Sie eine curl.exe - Datei mit mehreren .dll - Dateien.

Öffnen Sie nun eine Eingabeaufforderung, indem Sie in start menucmd eingeben. Geben Sie dort cd c:\curl Ein und Sie gelangen in den Curl-Ordner. Führen Sie nun den Befehl curl aus, den Sie haben.

Eine Sache, Windows unterstützt keine einfachen Anführungszeichen um die Felder. Sie müssen also doppelte Anführungszeichen verwenden. Zum Beispiel habe ich Ihren Curl-Befehl wie gewünscht konvertiert.

curl -H "Content-Type: application/json" -XPOST "http://localhost:9200/indexname/typename/optionalUniqueId" -d "{ \"field\" : \"value\"}"
61
Sabuj Hassan

Lassen Sie mich das klar erklären. Wenn Sie mit rdbms vertraut sind. Index ist Datenbank. Und Indextyp ist Tabelle. Es bedeutet Index ist Sammlung von Indextypen. Wie Sammlung von Tabellen als Datenbank (DB).

in NOSQL .. Index ist Datenbank und Indextyp ist Sammlungen. Sammelgruppe als Datenbank.

Um diese Abfragen auszuführen, müssen Sie CURL für Windows installieren.

Curl ist nichts anderes als ein Kommandozeilen-Rest-Tool. Wenn Sie ein grafisches Tool möchten, versuchen Sie es

Sense-Plugin für Chrom ...

Ich hoffe es hilft..

10
BlackPOP

Um Curl-Anfragen von Windows zu testen und auszuprobieren, können Sie die Postman-Client-Erweiterung Chrome) verwenden. Sie ist sehr einfach zu verwenden und sehr leistungsfähig.

Oder wie vorgeschlagen, können Sie die cURL util installieren.

Eine Beispielanforderung zum Einrollen lautet wie folgt.

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/"

Ich beginne auch damit, ES in gewaltigen Mengen zu erforschen. Lassen Sie mich bitte wissen, wenn Sie weitere Zweifel haben.

BEARBEITEN: Der Indexname und der Typname wurden vollständig in Kleinbuchstaben geändert, um Fehler zu vermeiden und die Konvention zu befolgen.

Ich habe mit curl angefangen, bin aber seitdem auf kibana umgestiegen. Hier einige weitere Informationen zum ELK-Stack von elastic.co (E elastic search, K kibana): https://www.elastic.co/elk-stack

Mit kibana sind Ihre POST Anfragen etwas einfacher:

POST /<INDEX_NAME>/<TYPE_NAME>
{
    "field": "value",
    "id": 1,
    "account_id": 213,
    "name": "kimchy"
}

Wenn Sie KIBANA mit elasticsearch verwenden, können Sie die unten stehende RESt-Anfrage verwenden, um einen Index zu erstellen und in den Index aufzunehmen.

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

DOKUMENT ERSTELLEN:

POST http://localhost:9200/company/employee/2/_create
{
"name": "Hemani",
"age" : 23,
"experienceInYears" : 2
}
0
Kailash Karki

Um die Verwendung von curl oder Chrome Plugins zu vermeiden, können Sie einfach das in Windows integrierte Powershell verwenden. Führen Sie im Powershell-Befehlsfenster Folgendes aus

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

Beachten Sie, dass der Indexname in Kleinbuchstaben angegeben werden muss.

0
rob