Information Security ˗ˋˏ ♡ ˎˊ˗

OS/Database

[DBMS] Elasticsearch DB(엘라스틱서치) 기본개념

토오쓰 2022. 1. 18. 16:34

 

1. 정의

- Apache Lucene(아파치 루씬) 기반의 Java 오픈소스 분산 검색 엔진으로, 프로그램으로서의 검색엔진이라고 한다.

- 프로그램으로서의 검색엔진= 현재 가지고 있는 데이터 중에서 특정한 데이터를 검색할 있는 기능을 제공하는

 

2. 기본 구성

데이터 -> 수집 -> 전처리 -> 인덱싱 -> 시각화

 

3. 장점

1) 속도: 전문 검색(full-text)을 위한 역 인덱스(inverted-index) 구현

- 역 인덱스(inverted-index): 인덱스는 관계형 데이터베이스에서 칼럼에다 인덱스를 걸어 select 하는 데 있어 성능을 향상시킨다. 하지만 인덱스가 걸려 있지 않은 컬럼에 대해서는 Fullscan을 해버림으로 검색이 느려진다. 데이터 인덱싱 시에 조금 더 인간의 사고와 가깝게 체계를 구성한다.

-전문 검색(Fulltext): 특정 단어가 어느 도큐먼트에 위치하는지 빠르게 찾아낼 수 있음으로 관계형 데이터베이스보다 더 효율적으로 fulltext search를 수행할 수 있다.

2) 확장성: 노드 구성의 수평적 확장 용이하다.

3) 유연: 숫자, 텍스트, 위치정보, 정형, 비정형 모든 유형의 데이터를 수용한다.

4) 복원: 분산 저장 설계로 하드웨어 오류나 네트워크 단절에 안전하다.

 

4.  관계형 데이터베이스와 다른 

Relational DB  Elasticsearch
SELECT GET 
UPDATE PUT
INSERT POST
 DELETE DELETE

 

Relational DB Elasticsearch
데이터베이스(Database) 인덱스(Index)
테이블(Table) 타입(Type)
행(Row) 문서(Document)
열(Column) 필드(Field)
스키마(Schema) 매핑(Mapping)

 

* Query DSL를 자세히 살펴보자

Query DSL: json 포맷으로 query를 만들어서 검색

- Query 절은 Query Context 또는 Filter Context에서 사용되는지 여부에 따라 다르게 동작한다

  • Query Context: document가 얼마나 잘 일치하는지를 _score( 관련성 점수, relevance score )로 표현
  • Filter Context: 답은 true 또는 false이며 점수는 계산하지 않는다.

실행하기 위해서는 json 파일을 만들어서 파일을 수정하고 명령어는 다음과 같이 입력한다.

# curl -XGET 'localhost:9200/bank/account/_search?pretty' -H 'Content-Type: application/json' -d @query.json

 

match_all Query는 지정된 index의 모든 document를 검색하는 방법이다.

#vi query.json
{
    "query":{
        "match_all":{}
    }
}

 

5. 플러그인

버전 플러그인 정의 파일 위치
Elasticsearch2.4 Shield   /shield/users_roles
Elasticsearch5.0 이상
 
X-Pack 보안, 알림, 모니터링, 보고, 그래프 기능을 설치하기 편리한 단일 패키지로 번들 구성한 Elastic Stack 확장 프로그램 /x-pack/users_roles
Search-Guard Search Guard는 엘라스틱서치 및 키바나에서 SSL 기반으로 인증 및 권한 제어를 하는 플러그인 /sgconfig/sg_internal_users.yml

 

# 다음으로 설치하는 방법

https://t-okk.tistory.com/192

 

[DBMS] Elasticsearch DB(엘라스틱서치) 설치방법 With Ubuntu

OS 버전: Ubuntu 16.04.7 LTS (Xenial Xerus) 자신의 OS에 맞는 엘라스틱서치 설치하기 https://www.elastic.co/kr/support/matrix 1. 자바 설치하기 엘라스틱서치는 JVM 위에서 돌아가기 때문에 JDK 설치되어 있..

t-okk.tistory.com

 

 

참고

https://velog.io/@jakeseo_me/%EC%97%98%EB%9D%BC%EC%8A%A4%ED%8B%B1%EC%84%9C%EC%B9%98-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-2-DB%EB%A7%8C-%EC%9E%88%EC%9C%BC%EB%A9%B4-%EB%90%98%EB%8A%94%EB%8D%B0-%EC%99%9C-%EA%B5%B3%EC%9D%B4-%EA%B2%80%EC%83%89%EC%97%94%EC%A7%84

https://www.bespinglobal.com/download/company_info/elastic_info.pdf

https://www.youtube.com/watch?v=B1Aq2GQ4E78&list=PLVNY1HnUlO24LCsgOxR_eK2Yi4sOgH9Pg&index=3