엘라스틱서치는 강력한 오픈 소스 검색 엔진입니다. 엘라스틱서치는 방대한 양의 데이터를 저장, 검색, 분석 처리를 실시간으로 처리 할 수 있습니다.
목차
엘라스틱서치란?
엘라스틱서치(Elasticsearch)는 실시간 분산 검색 및 분석 엔진으로, 아파치 루씬(Apache Lucene)기반의 오픈 소스 프로젝트입니다. 주로 대량의 데이터를 신속하게 검색, 분석 및 시각화하기 위해 설계되었으며, 분산 아키텍처를 기반으로 하여 가용성과 확장성을 제공합니다.
엘라스틱서치를 사용하는 글로벌 기업으로는 이베이, 마이크로소프트, 월마트가, 국내 기업으로는 삼성SDS, 11번가, 포스코 등이 엘라스틱의 솔루션을 도입하였다고 합니다.
Elasticsearch Platform 공식 홈페이지
Power insights and outcomes with the Elasticsearch Platform and AI. See into your data and find answers…
https://www.elastic.co
엘라스틱서치 특징
1. 검색 엔진
- Elasticsearch는 분산 검색 엔진으로, 대용량 데이터셋에서 빠르고 정확한 검색을 지원합니다.
- 전문 검색, 전문가 시스템, 로깅 및 비즈니스 분석 등 다양한 분야에서 사용됩니다.
2. 분산 아키텍처
- Elasticsearch는 여러 노드에 데이터를 분산 저장하고 검색을 병렬로 처리하여 성능을 향상시킵니다.
- 높은 가용성과 확장성을 제공하며, 노드의 추가 및 삭제가 용이합니다.
3. RESTful API
- Elasticsearch는 RESTful API를 통해 데이터를 색인화하고 검색할 수 있습니다.
- 간단한 HTTP 요청을 통해 데이터에 접근하고 조작할 수 있어 개발자 친화적입니다.
4. 데이터 모델
- 데이터는 JSON 문서 형식으로 색인됩니다. 이러한 JSON 문서는 유연하게 구조화되어 있어 복잡한 데이터 모델을 다룰 수 있습니다.
5. 다양한 플러그인과 확장성
- Elasticsearch는 다양한 플러그인을 지원하여 데이터 처리, 시각화, 보안 등 다양한 기능을 확장할 수 있습니다.
장점 / 단점
장점
- 검색 성능: 대용량 데이터에서 뛰어난 검색 성능을 제공합니다.
- 분산 아키텍처: 노드 간 데이터 분산 저장으로 가용성과 확장성을 높일 수 있습니다.
- RESTful API: 쉽고 간편한 인터페이스를 통한 데이터 조작이 가능합니다.
단점
- 복잡성: 초기 구성 및 관리가 상대적으로 복잡할 수 있습니다.
- 자원 소모: 대용량 데이터를 다루는 데 필요한 자원이 상당할 수 있습니다.
엘라스틱서치 사용 예
데이터색인
# 색인 생성
curl -X POST "localhost:9200/my_index" -H 'Content-Type: application/json' -d'
{
"mappings": {
"properties": {
"title": { "type": "text" },
"content": { "type": "text" }
}
}
}
'
# 문서 추가
curl -X POST "localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d'
{
"title": "Elasticsearch Introduction",
"content": "Elasticsearch is a powerful search engine."
}
'
데이터검색
# 단일 필드 검색
curl -X GET "localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d'
{
"query": {
"match": {
"title": "Introduction"
}
}
}
'
집계 및 분석
# 집계
curl -X GET "localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d'
{
"aggs": {
"average_length": {
"avg": {
"field": "content.length"
}
}
}
}
'
이상입니다.
[더 읽어볼거리]