ElasticSearch (4) 썸네일형 리스트형 [elasticsearch] 특정 조건에 해당하는 document들 일괄 업데이트(update_by_query) elaticsearch에서 특정 조건에 해당하는 document들을 모두 업데이트하고 싶다면 update_by_query를 사용하면 된다. 예제를 통해서 어떻게 하는지 알아보자. 아래 명령어는 Kibana DevTools를 기준으로 작성했다. 1) 먼저 특정 조건에 해당하는 document들 확인 # document field 등 disk 사이즈가 0보다 작은 document들이 있는지 먼저 탐색해본다. GET test-resource/_search { "query": { "range" : { "disk" : { "lt" : 0 } } } } 먼저 _search API를 통해서 disk가 0보다 작은 아이들을 찾는다. disk값이 0보다 작을 수는 없으므로 잘못된 정보다. 이를 일괄 0으로 수정해보자. .. [elaticsearch] 특정 시간 기준으로 document들 삭제하기 인덱스에서 특정 시간 기준으로 document를 지우고 싶다면, _delete_by_query에서 range에 시간 조건을 추가해서 지울 수 있다. 예제를 통해서 살펴보자. 만약 user라는 index에서 @timestamp가 2020년 7월 1일 이후인 document를 지우고 싶다면 아래와 같이 쿼리를 사용한다. POST user/_delete_by_query { "query":{ "range":{ "@timestamp":{ "gte" : "2020-07-01T00:00:00+09:00"} } } } range에서 gte는 greater than or equal로 같거나 큰 값을 뜻한다. 범위 조건에 대한 내용은 아래와 같다. 파라미터 의미 gt 크다 (greater than) lt 작다 (less .. [elasticsearch] 엘라스틱서치 리인덱싱(reindexing) - 같은서버, 다른서버 엘라스틱서치에서는 인덱스의 이름을 바꾸거나, 속성을 바꾸려면 리인덱싱(reindexing)이라는 방법을 통해서 인덱스를 관리해야 한다. 이러한 리인덱싱 작업은 엘라스틱서치를 사용할때 꽤나 자주 발생한다. 리인덱싱은 같은 엘라스틱서치 내에서도 할 수 있지만, 다른 엘라스틱 서치에 있는 데이터를 가져와서 리인덱싱할 수도 있다. 이번 포스팅에서는 그 두가지 방법을 소개한다. 같은 elasticsearch 내에서 reindexing Kibana Dev Tools에서 POST _reindex?wait_for_completion=true { "source": { "index": "machine_log" }, "dest": { "index": "another_machine_log" } } curl 명령어 curl -.. [elasticsearch] 샤드 개수 설정하기 엘라스틱서치에서 샤드를 설정하기 위해서는 인덱스를 생성과 동시에 설정해주어야 한다. 만약 이미 생성된 인덱스에 샤드의 갯수를 바꾸고 싶다면, 리인덱싱하는 방법을 통해 샤드의 갯수를 수정하는 방법밖에 없다. 그러니, 인덱스를 생성할 때 샤드의 갯수를 신중하게 고려하여 설정하여야 한다. 샤드 갯수를 설정하는 방법은 인덱스를 생성할 때 추가적으로 index.number_of_shards의 값을 설정해준다. PUT index명 { .... "settings": { "number_of_shards": 8, "number_of_replicas": 1 } .... } 위 예제에서는 샤드의 갯수를 8개로 설정했다. 이는 환경에 따라 다르게 설정하면 된다. 보통 노드수, 코어수를 고려하여 실험적으로 저 값을 정한다. n.. 이전 1 다음