아무거나

엘라스틱서치 정의 본문

Data Store/Elastic Stack

엘라스틱서치 정의

전봉근 2019. 5. 3. 16:24
반응형

* 아파치 루신(apache lucene)을 기반으로 개발된 오픈소스 분산 검색 엔진(서버)이다

  특징

  - 분산+확장성 : elasticsearch는 scale horizontally(규모가 수평적으로 늘어나도록) 하게 설계되어 있다.

  - 멀티 태넌시 : 클러스터는 여러개의 인덱스들을 저장하고 관리할 수 있으며, 독립된 하나의 쿼리 혹은 그룹 쿼리로 여러 인덱스의 데이터를 검색할 수 있다.

  - 전문 검색 : elasticsearch는 강력한 전문검색을 지원한다.

  - 문서 중심 : 복잡한 현실세계의 요소들을 구조화된 JSON 문서 형식으로 저장. 모든 필드는 기본적으로 인덱싱되며, 모든 인덱스들은 단일 쿼리로 빠르게 사용할 수 있다.

  - Schema Free : JSON문서 구조를 통해 데이터를 인덱싱하고 검색가능하게 한다. (스키마가 개념이 없다!)

                  그리고 사용자의 데이터가 어떻게 인덱싱 될 것인가에 대한 것은 사용자가 커스터마이징할 수 있다.

  - restful api : json형식의 간단한 restful api를 제공

  - apache2 open source license : 아파치2 라이센스를 따른다.

  - 역 인덱싱

    1. elastic search

       John : doc1, doc2

       database : doc1, doc3

    2. relational db

       doc1 : john, database

       doc2 : john, algorithm

       doc3 : torm, database

    3. elastic search VS relational DB       

Elastic Search relational DB
index database
type table
document row
field column
mapping schema

  4. 사용법# select * from class where id = 1
curl -XGET localhost:9200/classes/class/1

# insert into class values {xxx}
curl -XPOST localhost:9200/classes/class/1​ -d '{xxx}'

# update class set xxx where id = 1;
curl -XPUT localhost:9200/classes/class/1 -d '{xxx}'

# delete from class where id = 1; 
curl -XDELETE localhost:9200/classes/class/1

# select * from class where id = 1
curl -XGET localhost:9200/classes/class/1

# insert into class values {xxx}
curl -XPOST localhost:9200/classes/class/1​ -d '{xxx}'

# update class set xxx where id = 1;
curl -XPUT localhost:9200/classes/class/1 -d '{xxx}'

# delete from class where id = 1; 
curl -XDELETE localhost:9200/classes/class/1
반응형

'Data Store > Elastic Stack' 카테고리의 다른 글

데이터 업데이트(UPDATE)  (0) 2019.05.07
데이터 입력 조회 삭제(GET, POST, DELETE..)  (0) 2019.05.07
elasticsearch 설치  (0) 2019.05.03
ELK 설치  (0) 2019.05.02
elasticsearch5 에러 cannot allocate memory해결  (0) 2019.05.02
Comments