elastic search / elasticsearch 에서 data insert
elasticsearch 에서 data insert
my_index
라는 index 에 대한 query 들이다. 기본적으로 windows curl 을 사용했다.
index 생성
# ------------------------------------
# index 생성
# ------------------------------------
curl -X PUT localhost:9200/my_index -d "{\"mappings\" : { \"properties\" : { \"version\" : { \"type\" : \"long\" } } } }" -H "Content-Type: application/json"
{"acknowledged":true,"shards_acknowledged":true,"index":"my_index"}
위의 curl 의 data 부분은 아래와 같다.
{
"mappings": {
"properties": {
"version": {
"type": "long"
}
}
}
}
index 정보 가져오기
# ------------------------------------
# index 의 정보를 얻기
# ------------------------------------
curl localhost:9200/my_index?pretty=true
{
"my_index" : {
"aliases" : { },
"mappings" : {
"properties" : {
"version" : {
"type" : "long"
}
}
},
"settings" : {
"index" : {
"routing" : {
"allocation" : {
"include" : {
"_tier_preference" : "data_content"
}
}
},
"number_of_shards" : "1",
"provided_name" : "my_index",
"creation_date" : "1620431119326",
"number_of_replicas" : "1",
"uuid" : "kQdMxYqeS-OBitzbHLIn1w",
"version" : {
"created" : "7120199"
}
}
}
}
}
data 넣기
insert 에서는 _doc
를 이용해야 한다. _doc
관련해서는 여기를 참고하자.
curl -XPOST "http://localhost:9200/my_index/_doc" -d "{ \"version\" : 1234}" -H "Content-Type: application/json"
{
"_index": "my_index",
"_type": "_doc",
"_id": "9PFLSXkBQTkQZH7wb0bz",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
bulk insert
bulk 에서는 하나의 request 가 newline 으로 끝나야만 한다.
command line 에서 다 해결하고 싶었지만, 아래 curl 로는 newline 이 제대로 elasticsearch 로 전달되지 않는듯 하다.
curl -XPOST "http://localhost:9200/my_index/_bulk" --data-binary "{ \"create\": { } }\\n{ \"version\": 2222 }\\n{ \"create\": { } }\\n{ \"version\": 3333 }\\n" -H "Content-Type: application/json"
그래서 file 을 이용하는 방법으로 했다. 주의할 점은 --data-binary 이다.
curl -XPOST "http://localhost:9200/my_index/_bulk" --data-binary @data.json -H "Content-Type: application/json"
{ "create": { } }
{ "version": 4444}
{ "create": { } }
{ "version": 5555}
data 조회
curl "http://localhost:9200/my_index/_search?pretty=true" -d "{ \"query\" : {\"match_all\" : {}}}" -H "Content-Type: application/json"
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "my_index",
"_type" : "_doc",
"_id" : "9PFLSXkBQTkQZH7wb0bz",
"_score" : 1.0,
"_source" : {
"version" : 1234
}
}
]
}
}
다른 조회 관련 query 예제는 다음 링크를 참고하자.
댓글 없음:
댓글 쓰기