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
}
}
}'
반응형