[elasticsearch] What is Elasticsearch?

yoon-bomi·2022년 11월 18일
0

elasticsearch

목록 보기
3/4

  • Apache Lucene(아파치 루씬) 기반의 java 오픈소스 분산 검색 엔진
  • 방대한 양의 데이터를 신속하고 거의 실시간으로 저장, 검색, 분석 가능

장점

  1. 오픈소스 검색 엔진이기 때문에 무료로 사용 가능하다.
  2. 역색인을 이용해 방대한 양의 데이터를 신속하게 처리가 가능하다.

단점

  1. 진입장벽이 있다.
  2. Document 간의 조인을 수행할 수 없다. (두 번 쿼리로 해결은 가능)
  3. 트렌잭션이 제공되지 않는다.
  4. ‘실시간(Real Time)' 처리 불가능
  5. 진정한 의미의 업데이트를 지원하지 않는다. (실제로는 delete → insert 과정으로 업데이트 됨)

Elasticsearch vs RDBMS

ElasticsearchRDBMS
mappingschema
indexdatabase
type (deprecated)table
documentrow
fieldcolumn
partitionshard

이 중에 우리가 중점적으로 보아야 하는 것은 index, document, mapping 정도이다.


Elasticsearch CRUD

ElasticsearchRDBMS
스키마 없음스키마 존재
역색인 자료 구조인덱스 자료 구조
검색 엔진데이터 저장소


왜 엘라스틱 서치가 더 빠를까?

  • 데이터를 저장하고 있는 구조 자체가 다르다. (역색인 구조)

좌 : 색인 구조(문서에서 키워드를 찾아 보기 쉽도록 정렬 및 나열한 목록)

우 : 역색인 구조(키워드를 통해 문서를 찾아내는 방식)


그럼 엘라스틱 서치를 쓸 일이 뭐가 있을까?

  1. 관계형 데이터베이스는 단순 텍스트 매칭에 대한 검색만을 제공
    • MySQL 최신 버전에서 n-gram 기반의 Full-text 검색을 지원하지만, 한글 검색의 경우에 아직 많이 빈약하다고 한다.
  2. 텍스트를 여러 단어로 변형하거나 텍스트의 특질을 이용한 동의어나 유의어를 활용한 검색이 가능
  3. 엘라스틱서치에서는 관계형 데이터베이스에서 불가능한 비정형 데이터의 색인과 검색이 가능
  4. 엘라스틱서치에서는 형태소 분석을 통한 자연어 처리가 가능
    • 엘라스틱서치는 다양한 형태소 분석 플러그인을 제공
  5. 역색인 지원으로 매우 빠른 검색이 가능




ref.
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://choseongho93.tistory.com/231
https://sudarlife.tistory.com/entry/Elasticsearch-%EA%B0%84%EB%8B%A8-%EA%B0%9C%EB%85%90-%EC%9E%A5%EB%8B%A8

profile
웹 풀스택에서 백엔드로 진화중 🧚🏻‍♀️

0개의 댓글