본문 바로가기

Data Engineering/Cloud

[ELK스택] Elastic Search (2)

Elastic Search (1) 에서 json file로부터 document를 생성했기 때문에 아래의 코드 실행시 에러 발생함

curl -XPOST http://localhost:9200/classes/class/1/_update -d ' {"doc" : {"unit":1}}'

 



Elasticsearch 6.0 이후 버전에 도입된 엄격한 content-type 확인으로 인해서 아래의 코드가 추가되어야함

curl -XPOST http://localhost:9200/classes/class/1/_update?pretty -H'Content-Type: application/json' -d'
{ "doc" : {"unit" : 4} } '
  • unit 4로 변경 확인

  • Update One Field With Script
curl -XPOST http://localhost:9200/classes/class/1/_update?pretty -H'Content-Type: application/json' -d'
{"script":"ctx._source.unit +=4"}'


bulk

curl -XPOST -H "Content-Type:application/json" http://localhost:9200/_bulk?pretty --data-binary @classes.json
bulk 명령어를 줘서 여러개의 document를 한번에 Elasticsearch에 삽입할 수 있음

Mapping (RDB = Schema)

  • 비어있는 mapping 확인

Elasticsearch 6.x 버전을 사용하고 있고, 호환성을 유지해야 한다면, include_type_name 매개변수를 추가하여 요청해야함
"string" 타입 수정: Elasticsearch 7.x에서 "string" 타입 대신 "text" 타입을 사용해야 함

curl -XPUT 'http://localhost:9200/class/class/_mapping?include_type_name=true' -H "Content-Type: application/json" -d @classesRating_mapping.json

  • 해당하는 document에 json file로 mapping 하고 싶다면 index를 잘 확인할 것


errors: 색인 요청 중에 오류가 있는지 여부를 나타냅니다. 이 값이 false면 오류가 없었음을 의미합니다.


Search

serach는 검색 작업을 하겠다는 액션을 의미

  • document from json file
curl -XPOST -H "Content-Type:application/json" http://localhost:9200/_bulk?pretty --data-binary @simple_basketball.json
  • search ?pretty 확인
curl -XGET localhost:9200/basketball/record/_search?pretty

Search - URI (option=1)

curl -XGET 'localhost:9200/basketball/record/_search?q=points:30&pretty'

Search - REQUEST BODY (option=2)

curl -XGET 'localhost:9200/basketball/record/_search' -H 'Content-Type: application/json' -d '{
  "query": {
    "term": {
      "points": 30
    }
  }
}'

반응형

'Data Engineering > Cloud' 카테고리의 다른 글

[AWS] Boto3로 S3 연결  (0) 2023.11.14
[ELK스택] Elastic Search (3)  (0) 2023.11.11
[ELK스택] Elastic Search (1)  (0) 2023.11.11
[AWS] S3 to RDS  (0) 2023.11.11
[AWS] S3 with Cloudformation  (0) 2023.11.11