데이터 넣기
지금 넣는 데이터로 앞으로 검색하는 데 사용하겠습니다.
(http request client를 사용하신다면 body에 반듯이 enter 한번 더 입력하세요)
api | PUT http://localhost:9200/_bulk |
header | Content-type: application/json |
body | {"index": {"_index": "my-log-index-2021-08-29", "_id": 1}} {"user_id":1, "level":"info", "timestamp": 1630230119, "action": "open_file", "message": "user1 aaa file open"} {"index": {"_index": "my-log-index-2021-08-29", "_id": 2}} {"user_id":2, "level":"debug", "timestamp": 1630230120, "action": "open_file", "message": "user2 bbb file open"} {"index": {"_index": "my-log-index-2021-08-29", "_id": 3}} {"user_id":3, "level":"info", "timestamp": 1630230121, "action": "open_socket", "message": "user3 socket open"} {"index": {"_index": "my-log-index-2021-08-29", "_id": 4}} {"user_id":4, "level":"debug", "timestamp": 1630230121, "action": "open_socket", "message": "user4 ddd socket open"} {"index": {"_index": "my-log-index-2021-08-29", "_id": 5}} {"user_id":5, "level":"info", "timestamp": 1630230122, "action": "open_file", "message": "user5 ccc file open"} {"index": {"_index": "my-log-index-2021-08-29", "_id": 6}} {"user_id":6, "level":"info", "timestamp": 1630230123, "action": "close_file", "message": "user6 aaa close open"} {"index": {"_index": "my-log-index-2021-08-29", "_id": 7}} {"user_id":7, "level":"info", "timestamp": 1630230124, "action": "close_socket", "message": "user7 ccc close socket"} {"index": {"_index": "my-log-index-2021-08-29", "_id": 8}} {"user_id":8, "level":"debug", "timestamp": 1630230125, "action": "open_file", "message": "user8 aaa file open"} {"index": {"_index": "my-log-index-2021-08-29", "_id": 9}} {"user_id":9, "level":"info", "timestamp": 1630230126, "action": "open_file", "message": "user9 bbb file open"} {"index": {"_index": "my-log-index-2021-08-29", "_id": 10}} {"user_id":10, "level":"info", "timestamp": 1630230127, "action": "open_file", "message": "user10 aaa file open"} {"index": {"_index": "my-log-index-2021-08-29", "_id": 11}} {"user_id":11, "level":"warn", "timestamp": 1630230128, "action": "open_file", "message": "user11 bbb file open"} {"index": {"_index": "my-log-index-2021-08-29", "_id": 12}} {"user_id":12, "level":"info", "timestamp": 1630230128, "action": "open_file", "message": "user12 aaa file open"} {"index": {"_index": "my-log-index-2021-08-29", "_id": 13}} {"user_id":13, "level":"info", "timestamp": 1630230129, "action": "open_file", "message": "user13 bbb file open"} |
GET으로 데이터 가져오기
일상적으로 많이 사용하였던 방법입니다. GET으로는 도큐먼트 아이디를 통하여 해당 데이터를 가져올 수 있습니다.
도큐먼트 아이디 1 데이터 가져오기
api | GET http://localhost:9200/my-log-index-2021-08-29/_doc/1 |
출력 결과
query를 이용하여 가져오기
이번에는 도큐먼트 아이디가 아닌 query를 통하여 값을 가져오는 방법을 알아보겠습니다.
인덱스의 모든 데이터 가져오기
size는 가져올 수 있는 최대 개수입니다. 이번 결과에서는 size가 없어도 무방합니다.
api | POST http://localhost:9200/my-log-index-2021-08-29/_search |
header | Content-type: application/json |
body | { "size": 1000, "query": { "match_all": {} } } |
필드 값으로 검색하여 데이터 가져오기
active필드에 open_socket 값을 가지는 도큐먼트 가져오기
api | POST http://localhost:9200/my-log-index-2021-08-29/_search |
header | Content-type: application/json |
body | { "query": { "match": { "action": "open_socket" } } } |
출력 결과
출력 결과에서 각 태그의 의미는 다음과 같습니다.
took | 쿼리 수행 시간 |
timed_out | 쿼리 수행 시간이 넘었는지 확인 |
_shard | 쿼리를 수행한 shard의 정보 |
_shard.total | 쿼리를 수행한 shard의 수 |
_shard.successful | 쿼리 수행을 성공한 shard의 수 |
_shard.skipped | 쿼리를 건너뛴 shard의 수 |
_shard.failed | 쿼리를 실패한 shard의 수 |
hits | 쿼리 수행 결과 |
hits.total | 쿼리 수행에 일치하는 도큐먼트 수 |
hits.max_score | 쿼리 수행후 가장 높은 점수를 가진 값 |
hits.hits | 수행 결과의 도큐먼트 정보들 |
단어가 아닌 문장으로 검색하기
match_phrase를 이용하여 message필드에 "aaa file"문장을 포함한 도큐먼트를 검색합니다.
api | POST http://localhost:9200/my-log-index-2021-08-29/_search |
header | Content-type: application/json |
body | { "query": { "match_phrase": { "message": "aaa file" } } } |
'Elasticsearch > Elasticsearch 데이터' 카테고리의 다른 글
Elasticsearch 검색하기#3 match, term, range 쿼리 (0) | 2021.09.10 |
---|---|
Elasticsearch 검색하기#2 bool must, must_not, should (0) | 2021.09.08 |
Elasticsearch text, keyword의 차이 (0) | 2021.09.03 |
Elasticsearch Array 형식으로 저장하기 (0) | 2021.09.01 |
Elasticsearch Object 형식으로 저장하기 (0) | 2021.08.31 |