반응형
들어가기 전
- 아래 내용들은 elasticsearch:7.17.6 버전 기준으로 작성
인덱스 생성
curl -X PUT 'http://localhost:9200/study?pretty'
인덱스 조회
curl -X GET 'http://localhost:9200/study?pretty'
인덱스 삭제
curl -X DELETE 'http://localhost:9200/study?pretty'
전체 인덱스 조회
curl -X GET 'http://localhost:9200/_aliases?pretty'
데이터 추가
curl -X PUT 'http://localhost:9200/study/es-students/1?pretty' -H 'Content-Type: application/json' -d '
{
"name": "tyler",
"age": 30
}'
데이터 추가(json 파일)
echo '{"name": "tyler", "age": 30}' > tyler.json
curl -X PUT 'http://localhost:9200/study/es-students/1?pretty' -H 'Content-Type: application/json' -d @tyler.json
데이터 수정
curl -X POST 'http://localhost:9200/study/es-students/1/_update?pretty' -H 'Content-Type: application/json' -d '
{
"doc": {
"age": 33
}
}'
데이터 수정(스크립트)
curl -X POST http://localhost:9200/study/es-students/1/_update?pretty -H 'Content-Type: application/json' -d '
{
"script": "ctx._source.age += 5"
}'
데이터 수정(Bulk 데이터 파일)
echo '
{ "index" : { "_index" : "study", "_type" : "es-students", "_id" : "1" } }
{ "name": "tyler", "age": 30 }
{ "index" : { "_index" : "study", "_type" : "es-students", "_id" : "2" } }
{ "name": "tom", "age": 35 }
' > es-students.json
curl -X POST 'http://localhost:9200/_bulk?pretty' -H 'Content-Type: application/json' --data-binary @es-students.json
데이터 삭제
curl -X DELETE 'http://localhost:9200/study/es-students/1?pretty'
데이터 검색 - 전체 색인
curl -X GET 'http://localhost:9200/_search?pretty'
curl -X GET 'http://localhost:9200/_all/_search?pretty'
응답
{
"took": 1, // 조회시 소요된 시간(ms)
"timed_out": false, // 타임아웃 여부
"_shards": {
"total": 1, // 몇 개의 샤드에 질의했는지
"successful": 1, // 몇 개의 샤드에서 성공했는지
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 2, // 일치하는 문서의 수
"relation": "eq"
},
"max_score": 1.0, // 일치하는 문서의 최대 점수
"hits": [ // 조회 결과 문서들
{
"_index": "study",
"_type": "es-students",
"_id": "1",
"_score": 1.0, // 일치 점수
"_source": {
"name": "tyler",
"age": 30
}
},
{
"_index": "study",
"_type": "es-students",
"_id": "2",
"_score": 1.0,
"_source": {
"name": "tom",
"age": 35
}
}
]
}
}
데이터 검색 - 복수의 색인
curl -X GET 'http://localhost:9200/study,hobby/_search?pretty'
데이터 검색 - 복수의 타입
curl -X GET 'http://localhost:9200/study/es-students,docker-students/_search?pretty'
데이터 검색 - 전체
- 아래 요청 정보중에 바디 정보 없이 조회해도 동일함
curl -X GET 'http://localhost:9200/study/_search?pretty' -H 'Content-Type: application/json' -d '
{
"query": {
"match_all": {}
}
}'
데이터 검색 - 조건
curl -X GET 'http://localhost:9200/study/_search?pretty&q=name:tyler'
curl -X GET 'http://localhost:9200/study/_search?pretty' -H 'Content-Type: application/json' -d '
{
"query": {
"term": {
"name": "tyler"
}
}
}'
curl -X GET 'http://localhost:9200/study/_search?pretty' -H 'Content-Type: application/json' -d '
{
"query": {
"query_string": {
"query": "name:tyler AND age:30"
}
}
}'
curl -X GET 'http://localhost:9200/study/_search?pretty' -H 'Content-Type: application/json' -d '
{
"query": {
"query_string": {
"query": "tyler john",
"default_field": "name", // default: "_all"
"default_operator": "OR" // default: "OR"
}
}
}'
curl -X POST 'http://localhost:9200/study/_search?pretty' -H 'Content-Type: application/json' -d '
{
"from": 0,
"size": 10,
"query": {
"match": {
"name": "tyler"
}
},
"fields": ["name"]
}'
매핑 조회
curl -X GET 'http://localhost:9200/study/_mapping?pretty'
매핑 추가
curl -X PUT 'http://localhost:9200/study/_mapping?pretty' -H 'Content-Type: application/json' -d '
{
"es-students": {
"properties": {
"email": {
"type": "text"
}
}
}
}'
데이터 집계
curl -X GET http://localhost:9200/study/_search?pretty -H 'Content-Type: application/json' -d '
{
"size": 0,
"aggs": {
"avg_age": {
"avg": {
"field": "age"
}
},
"max_age": {
"max": {
"field": "age"
}
},
"sum_age": {
"sum": {
"field": "age"
}
}
}
}'
curl -X GET http://localhost:9200/study/_search?pretty -H 'Content-Type: application/json' -d '
{
"size": 0,
"aggs": {
"stats_age": {
"stats": {
"field": "age"
}
}
}
}'
반응형
'Development > ELK' 카테고리의 다른 글
[Logstash] 설치 (0) | 2019.03.01 |
---|---|
[Elasticsearch] 개념 (0) | 2019.02.24 |
[Kibana] 설치 (0) | 2019.02.24 |
[Elasticsearch] 파이프라인 (0) | 2019.02.23 |
[Elasticsearch] 설치 (2) | 2019.02.23 |