parsing_exception: Failed to parse the search request / query DSL (검색 요청 / query DSL 파싱 실패)
Elasticsearch의미
제출한 쿼리 본문(query DSL)을 파싱할 수 없었다. 요청 JSON 구조나 쿼리 구문이 Elasticsearch가 기대하는 형식과 맞지 않아 쿼리를 실행할 수 없었다.
원인
유효하지 않은 JSON, 잘못 배치되었거나 알 수 없는 쿼리 키, 잘못된 구조로 사용한 쿼리 유형(예: bool, range), 버전 간 제거/변경된 필드 이름, 괄호 초과/누락이 원인이다. 직접 작성하거나 동적으로 생성한 쿼리에서 흔하다.
해결 방법
오류 메시지의 줄/위치 힌트를 이용해 쿼리 본문을 확인하고 JSON이 유효한지 검증한다. query DSL 구조를 공식 레퍼런스와 비교한다(bool/must/filter 배치 등). 버전 업그레이드에서 제거된 구문을 갱신한다. 쿼리를 단계적으로 단순화해 문제 부분을 격리하고, 가능하면 클라이언트 라이브러리의 query builder를 사용한다.
같은 데이터베이스의 다른 항목
- routing_missing_exceptionRouting value is required for this document (이 문서에는 routing 값이 필요)
- too_many_buckets_exceptionTrying to create too many buckets
- shard_lock_obtain_failed_exceptionObtaining shard lock timed out
- max_bytes_length_exceeded_exceptionDocument contains at least one immense term that is too long (너무 긴 거대한 term이 문서에 포함됨)
- illegal_argument_exception_total_fieldsLimit of total fields has been exceeded
- verification_exceptionverification_exception: Found N problem(s) — Unknown column / Unknown index (ES|QL, SQL, EQL) (N개 문제 발견 — 알 수 없는 컬럼/인덱스)
- bind_transport_exceptionbind_transport_exception (Address already in use) (주소가 이미 사용 중)