이 섹션에서는 다음 CRUD APIs들을 설명하고 있다.
- Single document APIs
- Index API
- Get API
- Delete API
- Update API
- Multi-document APIs
- Multi Get API
- Bulk API
- Bulk UDP API
- Delete By Query API
[NOTE]
모든 CRUD API는 single-index API이다. Index parameter로는 single index 명이나 single index를 나타내는 alias 명을 사용한다.
Index API
Index API는 특정 index에 검색 가능한 형태로 JSON 형식의 document를 추가하거나 변경하는데 사용한다. 다음 예제는 "twitter" index에 id 1의 "tweet" type으로 JSON document를 추가하는 예제이다.
$ curl -XPUT 'http://localhost:9200/twitter/tweet/1' -d '{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}'
위의 작업 결과는 다음과 같다.
{
"_index" : "twitter",
"_type" : "tweet",
"_id" : "1",
"_version" : 1,
"created" : true
}
Automatic Index Creation
Index operation은 이전에 index를 생성하지 않았다면 자동으로 생성한다. (수동으로 index를 생성하는 것에 대해서는 create index API - http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html - 를 참고하라.) 그리고 또한, 이전에 만들지 않았다면 자동으로 입력하는 type에 맵핑된 type을 자동으로 생성한다. (type mapping을 수동으로 생성하는 put mapping API - http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html - 를 참고하라.)
Mapping은 그자체로 굉장히 유연하고 schema-free하다. 신규 필드와 object는 특정 type의 mapping definition에 자동으로 추가될 것이다. Mapping definition에 대한 더 자세한 정보를 얻으려면 mapping section을 참고하라.
Index.mapping.allow_type_wrapper를 true로 설정하면, JSON document의 형식은 type (JSON mapper를 사용하면 매우 유용하다) 을 포함할 수 있다.
$ curl -XPOST 'http://localhost:9200/twitter' -d '{
"settings": {
"index": {
"mapping.allow_type_wrapper": true
}
}
}'
{"acknowledged":true}
$ curl -XPUT 'http://localhost:9200/twitter/tweet/1' -d '{
"tweet" : {
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
}'
Automatic index creation은 모든 node의 config 파일에 있는 action.auto_create_index를 false로 설정하여 사용하지 않도록 할 수 있다. Automatic mapping creation은 모든 node의 config 파일 (또는 특정 index의 설정값) 에 있는 index.mapper.dynamic 값을 false로 설정하여 사용하지 않도록 할 수 있다.
Automatic index creation은 white/black list에 기반한 패턴을 포함하고 있을 수 있다. 예를 들면, action.auto_create_index를 +aaa*, -bbb*, +ccc*, -* 처럼 설정할 수도 있다. (+는 허용, -는 불허를 의미한다.)
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/723