2016-07-14 3 views
0

어쩌면 내가 Elasticsearch의 핵심 개념을 놓치고있다. 그러나 나는 이것에 익숙하지 않고 나에게 의미있는 것처럼 보이기 위해 노력하고있다.Elasticsearch 내부 문서 배열을 확장

경주에서 트랙 주위에 체크 포인트가있는 다수의 주자가 있다고 상상해보십시오.

아웃 기본 문서를 보일 수 있습니다 같은 :

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

내 질문에, 그것은 의미 체크 포인트의 목록을 확장 할 수 있도록 그렇다면, 무엇을 할 수있는 예 (POST) 요청 것을 않습니다 그?

업데이트 :

예상 결과 : 당신은 특정 일을 할 필요가 없습니다

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

'checkpoints'의 목록을 확장? 배열에 다른 객체를 추가 하시겠습니까? –

+0

추가 된 결과는 –

답변

1

.

당신은 PUT 쿼리를 실행하면 : 당신은 GET 쿼리에 정확히 같은를 얻을 것이다

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

:

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

결과 : 그래서

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

실행할 :

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" : "..." 
     } 
    ] 
}' 

당신은 얻을 것이다 :

당신에 의해 무엇을 의미
{"_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

입니다. 감사합니다. 선생님! 나는 약 2 시간을 보내고'/ _update' 스크립트 등을 사용하여 모든 종류의 특수한 스키마를 시도했다. 생각보다 항상 간단하다. –

+0

@StoyanDekov np man!) –

관련 문제