Database/Elasticsearch 2

[Elasticsearch] Data Indexing, Searching By Query

Elasticsearch는 관계형 데이터베이스와 다르게 쿼리(Query)와 필터(Filter)를 통해 데이터를 인덱싱 및 서칭 합니다. 쿼리와 필터는 모두 JSON형식으로 구현하며 이 QueryDSL(Domain Specific Language)라고 합니다. 쿼리와 필터는 각각 독립적인 요소로 실행되는데 이들에 대해 상세하게 설명드리도록 하겠습니다. 기본적인 형태소 분석 과정에 대해 설명드리자면, 대문자를 모두 소문자로 변환하고 중복 단어를 제거 후 분석 과정을 거치게 됩니다. 이러한 과정을 거치고 저장된 토큰을 텀(term)이라고 합니다. 이제 쿼리에 대해 하나씩 예시 코드와 함께 설명드리겠습니다. Indexing IndexQuery Indexing: 데이터를 검색될 수 있는 토큰으로 변환하기 위해 원..

[Elasticsearch] Elasticsearch란 무엇이고 왜 사용하는가

Elasticsearch는 Apache Lucene 기반의 검색 엔진입니다. HTTP 웹 인터페이스와 스키마에서 자유로운 Json 문서와 함께 멀티테넌트 지원 전문 검색 엔진을 제공합니다. 더불어, 자바 기반의 오픈 소스이지만, 클라이언트는 수많은 언어(Java, C#, PHP, Python..)로 이용이 가능합니다. Apache Lucene 특징 자바 언어로 개발 사용자 위치 정보 이용 가능 다국어 검색 지원 자동 완성, 미리 보기 지원 철자 수정 기능 지원 Elasticsearch 특징 분산 시스템 여러 개의 node로 구성되는 분산 시스템 기존 node에서 새 node를 실행하여 연결하는 것만으로 확장 가능 data는 각 node에 분산하여 저장 복사본(replica)을 유지하여 각종 충돌로부터 n..