elasticsearch
elasticsearch 내 Wildcard expressions or all indices are not allowed 에러 해결
11 views
블로그 불러오는 중...
문의 보내기
남겨주면 블로그 주인에게 바로 전달돼요.
elasticsearch
Elasticsearch에서 테스트로 만든 인덱스를 전부 지우고 싶을 때가 있습니다. 이때 DELETE 명령어와 와일드카드(*)를 사용하면 매우 편리한데요,
예를 들어 DELETE test.*라고 입력하여 test로 시작하는 모든 인덱스를 한 번에 삭제할 수 있습니다.
그런데, DELETE test.* 명령어를 실행했을 때, 다음과 같은 400 에러가 발생할 수 있습니다
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "Wildcard expressions or all indices are not allowed"
}
],
"type": "illegal_argument_exception",
"reason": "Wildcard expressions or all indices are not allowed"
},
"status": 400
}이 에러는 Elasticsearch 클러스터의 설정 때문에 발생한다. 기본적으로 와일드카드를 사용한 DELETE 명령은 허용되지 않습니다.
설정을 변경하면 되는데, 아래에 방법을 작성 합니다.
아래 API 호출하여, 클러스터의 설정을 변경한다.
PUT /_cluster/settings
{
"transient": {
"action.destructive_requires_name": true
}
}설정을 변경한 후에 DELETE test.* 명령어를 사용하여 test로 시작하는 모든 인덱스를 정상적으로 삭제할 수 있다.
설정을 변경하면 * 형태로 전체 Index 삭제가 가능하다.