ElasticSearch 설치
-
- ELK는 JVM위에서 구동
- 설치환경에 JDK가 설치되어 있어야 한다.
- apt-get install openjdk-11-jre
- apt-get install openjdk-11-jdk
- wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.1-amd64.deb
- dpkg -i elasticsearch-7.10.1-amd64.deb
- Elasticsearch 실행
- # systemctl enable elasticsearch.service (서비스활성화- 부팅시 자동 구동)
- # service elasticsearch start
systemctl enable name.service
PUT vs POST(idempotent)
idempotent = 실행을 여러번 반복해도 같은 결과를 보장받을 수 있는 특성을 말함.
- PUT(idempotent O)
- 리소스의 생성과 수정
- 요청시마다 같은 리소스를 반환
- PUT /<index>/<type>/<id>
- POST(idempotent X)
- 리소스 생성 역할
- 요청시마다 새로운 리소스 생성
- POST /<index>/<type>
- curl -XGET http://localhost:9200/classes?pretty
- curl -XPUT http://localhost:9200/classes
- curl -XDELETE http://localhost:9200/classes
- curl -XPOST http://localhost:9200/classes/class/2?pretty -H'Content-Type: application/json' -d' {"title":"Algorithm","Professor":"John"}'
- curl -XPOST http://localhost:9200/classes/class/4?pretty -H'Content-Type: application/json' -d @./test.json
- curl -XPOST http://localhost:9200/classes/class/3?pretty -update -H'Content-Type: application/json' -d' {"doc": {"Unit" : 1}}'
- curl -XPOST http://localhost:9200/_bulk --header 'content-type: application/json' --data-binary @classes.json
매핑테스트
- curl -XPUT localhost:9200/classes/class/_mapping?include_type_name=true -d @classesRating_mapping.json -H 'Content-Type: application/json'
- curl -XGET localhost:9200/basketball/record/_search?pretty
- curl -XGET 'localhost:9200/basketball/record/_search?q=points:30&pretty'
- curl -XGET localhost:9200/basketball/record/_search?pretty --header 'content-type:application/json' -d ' {
"query":{
"term":{"points":30}
}
}'
- curl -XGET localhost:9200/_search?pretty --data-binary @avg_points_aggs.json --header 'content-type:application/json'
- "points" : 20과 "points" : 30의 평균값 출력
- curl -XGET localhost:9200/_search?pretty --data-binary @max_points_aggs.json --header 'content-type:application/json'
- max값 출력가능
- curl -XGET localhost:9200/_search?pretty --data-binary @min_points_aggs.json --header 'content-type:application/json'
- min값 출력
- curl -XGET localhost:9200/_search?pretty --data-binary @sum_points_aggs.json --header 'content-type:application/json'
- curl -XGET localhost:9200/_search?pretty --data-binary @stats_points_aggs.json --header 'content-type:application/json'
- curl -XGET localhost:9200/_search?pretty --data-binary @terms_aggs.json --header 'content-type:application/json'
- LA와 cicago를 group하여 출력
- curl -XGET localhost:9200/_search?pretty --data-binary @stats_by_team.json --header 'content-type:application/json'