반응형
접속
접속 권한 제한
curl -XGET localhost:9200?pretty
- 위와 command를 실행 할 경우 아래와 같은 json코드를 볼 수 있다. 이럴 경우
elasticsearch.yml
에xpack.security.enabled: true
를 주석 처리해줘야 한다.
{
"error" : {
"root_cause" : [
{
"type" : "security_exception",
"reason" : "missing authentication credentials for REST request [/?pretty]",
"header" : {
"WWW-Authenticate" : "Basic realm=\"security\" charset=\"UTF-8\""
}
}
],
"type" : "security_exception",
"reason" : "missing authentication credentials for REST request [/?pretty]",
"header" : {
"WWW-Authenticate" : "Basic realm=\"security\" charset=\"UTF-8\""
}
},
"status" : 401
}
REST API
GET
목적 : 데이터 조회
- index 조회
curl -XGET localhost:9200/classes
PUT
목적 : Index 생성
curl -XPUT localhost:9200/classes
DELETE
목적 : 데이터 삭제
curl -XDELETE localhost:9200/classes?pretty
POST
목적 : 데이터 추가
curl -H "Content-Type: application/json" -XPOST localhost:9200/classes/class/1 -d "{\"title\" : \"Algorithm\", \"professor\" : \"John\" }"
- json 형태로 데이터 저장
- 결과
{
"classes" : {
"aliases" : { },
"mappings" : {
"properties" : {
"professor" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"title" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
},
"settings" : {
"index" : {
"routing" : {
"allocation" : {
"include" : {
"_tier_preference" : "data_content"
}
}
},
"number_of_shards" : "1",
"provided_name" : "classes",
"creation_date" : "1621518421366",
"number_of_replicas" : "1",
"uuid" : "hChFiUJxTNClEQxMKzsAWA",
"version" : {
"created" : "7110299"
}
}
}
}
}
UPDATE
목적 : 데이터 갱신
- 바로 update하는 방식
curl -H "Content-Type: application/json" -XPOST http://localhost:9200/classes/class/1/_update?pretty -d "{ \"doc\" : { \"unit\" : 1} }"
{
"_index" : "classes",
"_type" : "class",
"_id" : "1",
"_version" : 3,
"_seq_no" : 2,
"_primary_term" : 1,
"found" : true,
"_source" : {
"title" : "Algorithm",
"professor" : "John",
"unit" : 1
}
}
- code처럼 변수 값을 수정 하는 방식
curl -H "Content-Type: application/json" -XPOST http://localhost:9200/classes/class/1/_update?pretty -d "{ \"script\" : \"ctx._source.unit += 5 \"}"
{
"_index" : "classes",
"_type" : "class",
"_id" : "1",
"_version" : 4,
"_seq_no" : 3,
"_primary_term" : 1,
"found" : true,
"_source" : {
"title" : "Algorithm",
"professor" : "John",
"unit" : 6
}
}
bulk update
- 많은 정보를 한번에 update 쿼리를 날리기 위한 것
- 주로 편의상 json파일 정보를 넣을 때 많이 사용함
curl -H "Content-Type: application/json" -XPOST http://localhost:9200/_bulk?pretty --data-binary @classes.json
classes.json
file 내부의 모든 정보를 추가 할 때 사용 -> 2개 이상 정보가 있을 때 사용
Search Opition
- 한번에 여러 document를 한번에 조회할 때 사용
curl -H "Content-Type: application/json" -XGET http://localhost:9200/_search?pretty
- 추가 검색 기능
- unit이 3인 값을 출력
curl -H "Content-Type: application/json" -XGET http://localhost:9200/_search?q=unit:3&pretty
- request body를 사용할 경우
- unit 이 3인 값을 반환 하는 것
- 여러 Opition이 존재
curl -H "Content-Type: application/json" -XGET http://localhost:9200/_search -d '
{
"query" : {
"term": { "unit": 3 }
}
}
반응형
'Elasticsearch > 간단한 실습' 카테고리의 다른 글
03. Aggregation (0) | 2021.05.23 |
---|---|
01. Elasticsearch 기본 개념 정리 (0) | 2021.05.20 |