2016-07-14 14 views
0

Ok vielleicht fehlt mir ein Kernkonzept von Elasticsearch, aber ich bin neu dazu und versuche etwas zu erreichen, das für mich vernünftig aussah.Elasticsearch erweitern innere Dokumentarray

Stellen wir uns vor, wir haben eine Reihe von Läufern in einem Rennen, mit Kontrollpunkten rund um die Strecke.

Out Basis Dokumente können wie folgt aussehen:

{ 
    "name"  : "John Smith", 
    "age"  : "31", 
    "checkpoints": [ 
     { 
      "checkpoint" : "Race Start" 
      "timestamp" : "..." 
     } 
    ] 
} 

Meine Frage ist, macht es Sinn, in der Lage sein, die Liste der Checkpoints zu erweitern und wenn ja, was wäre ein Beispiel (POST) Anfrage zu tun Das?

Update:

Erwartetes Ergebnis:

{ 
    "name"  : "John Smith", 
    "age"  : "31", 
    "checkpoints": [ 
     { 
      "checkpoint" : "Race Start" 
      "timestamp" : "..." 
     }, 
     { 
      "checkpoint" : "Checkpoint1" 
      "timestamp" : "..." 
     }, 
     { 
      "checkpoint" : "Checkpoint2" 
      "timestamp" : "..." 
     } 
    ] 
} 
+0

, was Sie unter 'die Liste der checkpoints' zu verlängern? Ein anderes Objekt zum Array hinzufügen? –

+0

Zu erwartendes Ergebnis hinzugefügt –

Antwort

1

Sie haben noch etwas Bestimmtes zu tun.

Beim Ausführen von PUT-Abfrage:

curl -XPUT localhost:9200/your_index/your_type/1 -d '{ 
    "name"  : "John Smith", 
    "age"  : "31", 
    "checkpoints": [ 
     { 
      "checkpoint" : "Race Start", 
      "timestamp" : "..." 
     } 
    ] 
}' 

Sie bekommen genau das gleiche in GET-Abfrage:

curl -XGET localhost:9200/your_index/your_type/1 

Ergebnis:

{"_index":"your_index","_type":"your_type","_id":"1","_version":2,"found":true,"_source":{ 
     "name"  : "John Smith", 
     "age"  : "31", 
     "checkpoints": [ 
      { 
       "checkpoint" : "Race Start", 
       "timestamp" : "..." 
      } 
     ] 
    }} 

Also, wenn Sie laufen:

curl -XPUT localhost:9200/your_index/your_type/1 -d '{ 
    "name"  : "John Smith", 
    "age"  : "31", 
    "checkpoints": [ 
     { 
      "checkpoint" : "Race Start", 
      "timestamp" : "..." 
     }, 
     { 
      "checkpoint" : "Checkpoint1", 
      "timestamp" : "..." 
     }, 
     { 
      "checkpoint" : "Checkpoint2", 
      "timestamp" : "..." 
     } 
    ] 
}' 

Sie erhalten:

{"_index":"your_index","_type":"your_type","_id":"1","_version":3,"found":true,"_source":{ 
     "name"  : "John Smith", 
     "age"  : "31", 
     "checkpoints": [ 
      { 
       "checkpoint" : "Race Start", 
       "timestamp" : "..." 
      }, 
      { 
       "checkpoint" : "Checkpoint1", 
       "timestamp" : "..." 
      }, 
      { 
       "checkpoint" : "Checkpoint2", 
       "timestamp" : "..." 
      } 
     ] 
    }} 
+0

Vielen Dank, Sir! Ich habe ungefähr 2 Stunden damit verbracht und alle Arten von speziellen Schemas ausprobiert, mit '/ _update' Skripten, usw. Es ist immer einfacher als du denkst. –

+0

@StoyanDekov NP Mann!) –