728x90

Elasticsearch 3

Elasticsearch 정리 #2 (데이터 색인과 텍스트 분석)

- RDBMS에서는 특정 단어가 들어간 데이터를 검색하려면 like 검색을 해야해서 속도가 느리다. 하지만 엘라스틱서치는 데이터를 저장할 때 루씬기반의 역 인덱스 구조를 만들어 저장하기때문에 검색이 빠르다. 물론 대다수에 문서에 등장하는 단어라면 오히려 더 속도가 떨어 질 수 도 있다(ex) a, the, and 등). 하지만 Elasticsearch에서는 이 단어들을 불용어(stopword)로 등록하고 인덱스에서도 제거하며, 검색어에 등장해도 무시하게 설정이 되어 있다. - 엘라스틱 서치에서는 이 특정 단어를 Term이라고 부른다. 또한 역 인덱스를 데이터가 저장되는 과정에서 만들기 때문에 데이터를 입력할 때 저장이 아닌 색인을 한다고 표현한다. - 엘라스틱서치는 문자열 필드가 저장될 때 데이터에서 검..

Elasticsearch 2022.11.30

Elasticsearch 정리 #1 (기초 개념)

- 엘라스틱서치는 (1)루씬(Lucene) 기반의 오픈소스 검색 엔진이다. HTTP 기반의 REST API를 활용하여 요청 및 응답에 JSON을 활용해 다양한 플랫폼에서 개발이 가능하며, 정형화되지 않은 문서도 자동으로 색인하고 검색할 수 있다(Schemaless). 또한 (2)멀티테넌시가 가능하고 전문 검색 엔진을 제공한다. logstash 또는 fluentd로 로그를 변환하고 kibana를 연결하여 준실시간으로 로그를 분석하고 시각화 할 수 있다. NoSQL의 일종으로 분류할 수 있고, 기본적으로 검색엔진이지만 MongoDB 같은 대용량 스토리지로도 활용이 가능하다. - (1) 아래 그림을 보면 RDB와 루씬 기반의 데이터 구조의 극명한 차이점을 볼 수 있다. RDB는 행을 기반으로, 엘라스틱서치는 ..

Elasticsearch 2022.11.30

Elasticsearch Query 모음

GET - 버전 및 세부정보 확인 GET / - 모든 컬럼 조회 GET _search { "query": { "match_all": {} } } - fluentd-test 인덱스에서 message 필드값이 "test" 인 모든 컬럼 조회 (timestamp 기준으로 내림차순 정렬) GET fluentd-test/_search { "sort" : { "created": "desc"}, "query": { "match": { "message": "test" } } } - 모든 인덱싱 조회 GET _cat/indices (+) 컬럼명까지 같이 조회 : GET _cat/indices?v - fluentd-test 인덱스의 매핑구조 조회 GET fluentd-test/_mapping - 특정 인덱싱 조회 GET ..

Elasticsearch 2022.11.15