Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Spring
- APM
- 오블완
- MySQL
- minikube
- 컨텍스트 엔지니어링
- CloudWatch
- AI
- 바이브코딩
- 공부
- aws
- AWS EKS
- go
- Linux
- CKA 기출문제
- CKA
- 코틀린 코루틴의 정석
- Java
- 기록으로 실력을 쌓자
- Pinpoint
- golang
- Kubernetes
- 티스토리챌린지
- PETERICA
- SRE
- kotlin coroutine
- tucker의 go 언어 프로그래밍
- kotlin
- 정보처리기사 실기 기출문제
- kotlin querydsl
Archives
- Today
- Total
피터의 개발이야기
[Elasticsearch] KQL과 Lucene, 무엇이 다를까? Kibana 쿼리 언어 비교 가이드 본문
DevOps/Elasticsearch
[Elasticsearch] KQL과 Lucene, 무엇이 다를까? Kibana 쿼리 언어 비교 가이드
기록하는 백앤드개발자 2025. 9. 18. 23:35반응형
ㅁ 들어가며

Kibana를 쓰다 보면 검색창 우측의 KQL(Kibana Query Language) 과 Lucene 중 무엇을 써야 할지 헷갈리기 쉽다.
이번 글에서는 KQL과 Lucene의 개념 차이, 문법 비교, 그리고 실행 흐름을 정리해 보았다.
ㅁ KQL vs Lucene 개념
ㅇ Lucene Query
- Elasticsearch가 기본 제공하는 검색 언어
- 문자열 중심, 오래된 표준이자 범용성 높음
ㅇ Kibana Query Language (KQL)
- Kibana가 Lucene을 더 쉽게 쓰도록 만든 상위 문법
- 필드 타입 인식, 자동 완성, 오타 검증 등 UI 친화적 기능 제공
ㅁ 문법 비교
| 목적 | Lucene | KQL |
| 필드 일치 | status:200 | status : 200 |
| NOT | -status:200 |
!status : 200 or not status : 200
|
| AND/OR | status:200 AND method:GET |
status : 200 and method : "GET"
|
| 존재 검사 | _exists_:user | user : * |
| 범위 | bytes:[100 TO 200] |
bytes >= 100 and bytes <= 200
|
💡 포인트: KQL은 and, or, not을 그대로 쓰며 타입별 연산이 더 직관적이다.
ㅁ 실행 흐름
KQL을 선택해도 실제 Elasticsearch로 요청이 나갈 때는 Lucene 쿼리 DSL로 변환된다.
KQL 입력 → Kibana KQL 파서 → Lucene Query DSL 변환 → Elasticsearch 실행
즉, Kibana는 프런트엔드 편의 문법을 제공하고, ES는 결국 Lucene 기반 쿼리를 처리한다.
성능·결과는 Lucene 직접 사용과 동일하다.
ㅁ 언제 어떤 언어를 쓸까?
ㅇ KQL 추천: Kibana 대시보드·Discover에서 빠른 검색, 필드 자동 완성이 필요할 때.
ㅇ Lucene 추천: 정규식·퍼지 검색 등 Lucene 고유 기능이 필요하거나, Kibana 밖(REST API, Logstash 등)에서 동일 문법을 써야 할
때 필요하다.
ㅁ 마무리
- KQL은 사용자 친화적 문법, Kibana UI 최적화.
- Lucene은 ES 기본 엔진이자 범용 표준.
- Kibana 사용 시 KQL로 편리하게 작성하되, 내부적으로는 Lucene DSL로 변환된다는 점을 기억하면 된다.
반응형
'DevOps > Elasticsearch' 카테고리의 다른 글
| [Elasticsearch] ElasticSearch 기본 정리 (0) | 2024.09.23 |
|---|---|
| [Elasticsearch] Kibana Query Language 사용법 정리 (0) | 2024.08.06 |
| [Elasticsearch] Elasticsearch + Kibana 설치하기 with Docker (0) | 2024.08.05 |
| [Elasticsearch] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel 해결 방법 (0) | 2024.08.04 |
| [Elasticsearch] Docker로 Elasticsearch 설치 및 테스트하기 (0) | 2024.08.03 |
Comments
