기본 콘텐츠로 건너뛰기

ElasticSearch 7.2 맛보기

ElasticSearch 7.2

  • 검색 서비스 > 검색시스템 > 검색엔진
  • ElasticSearch는 검색엔진에 속함
  • 많은사용자들이 ELK (ElasticSearch, Logstash, Kibana) 라 부름
  • 최소 3개 이상의 물리적 노드로 클러스터를 구축하는것이 좋음
  • 역색인을 통한 검색
  • Apache Lucene 을 사용
  • 트랜잭션과 롤백기능을 제공하지 않음
  • 실시간 검색이 아닌 준 실시간

Elasticsearch 맛보기

  • Restful API를 사용하기 때문에 CRUD를 PUT(C),GET(R),POST(U,R),DELETE(D) 를 이용
  • Index : Database , Document : Table , Field : Column , ex) Type 은 7.0버전부터 없어짐
  • Shard(샤드) : 물리적인 노드 공간에 여러개의 파티션으로 나뉘어 구성, 파티션이 샤드
  • Index : 데이터 저장공간, 물리적 노드 하나에 논리적인 인덱스를 다수 생성가능, 생성시 소문자로만 구성 가능
  • Indices API : 인덱스관리
  • Document : 데이터가 저장되는 최소 단위, 다수의 Field로 구성
  • Field : 하나의 필드에 다수의 필드부여 가능
  • Document API : 문서의 추가/ 수정/ 삭제
  • Search API : 문서 조회
    • HTTP URI 방식의 문서 조회 ( Parameter )
    • Request Body 방식의 검색 질의 ( JSON 형식 )
  • Aggregation API : 문서 통계
    • Bucket Aggregation
    • Metric Aggregation
    • Matrix Aggregation
    • Pipeline Aggregation
  1. 엘라스틱서치 분석기
    1. 문장을 특정한 규칙에 의해 수정
    2. 수정한 문장을 개별 토큰으로 분리
    3. 개별 토큰을 특정한 규칙에 의해 변경
  • 분석기를 사용하기 위해서는 Analayzer 필드 수정
  • 대표적으로 Standard , Whitespace, Keyword 분석기 등이 있음
  • 데이터 구조 설계와 매핑 부분이 중요
  • 쿼리는 중요도로 부터 검색을 함
  • 필터는 where 에 의한 검색, 캐싱이 됨
  • 완전삭제를 위해서는 force merge를 해야 리소스 사용량을 줄일 수 있음

참고자료

댓글

이 블로그의 인기 게시물

Message Queue 란 무엇인가

Message Queue 란 무엇인가?? 메시지 지향 미들웨어(Meesage Oriented Middleware: MOM)은 비동기 메시지를 사용하는 다른 응용 프로그램 사이에서 데이터 송수신을 의미 MOM을 구현한 시스템을 메시지 큐(MessageQueue: MQ)라 함 Producer(sender) 가 메시지를 큐에 전송하면 Consumer(receiver) 가 처리하는 방식으로, producer 와 consumer 에 message 프로세스가 추가되는 것이 특징 메시지 큐의 장점 비동기(Asynchronous): Queue에 넣기 때문에 나중에 처리할 수 있습니다. 비동조(Decoupling): 애츨리케이션과 분리할 수 있습니다. 탄력성(Resilience): 일부가 실패 시 전체에 영향을 받지 않습니다. 과잉(Redundancy): 실패할 경우 재실행 가능합니다. 보증(Guarantees): 작업이 처리된걸 확인할 수 있습니다. 확장성(Scalable): 다수의 프로세스들이 큐에 메시지를 보낼 수 있습니다. 메시지 큐 종류 Apache ActiveMQ, Apache Kafka, Apache Qpid, Apache RocketMQ, Beanstalkd, Enduro/X, HTTPSQS, JBoss Messaging, JORAM, RabbitMQ, Sun Open Message Queue, and Tarantool 등 Apache ActiveMQ Java Message Service (JMS)를 사용하는 오픈소스 MQ Java, C, C ++, C #, Ruby, Perl, Python, PHP 등 다양한 크로스 언어 클라이언트 및 프로토콜 지원 Spring 지원으로 Spring xml config 메커니즘 이용 가능 JDBC 지원으로 DB 높은 퍼포먼스 가능 높은 퍼포먼스를 위해 클러스터링 구성 가능 Restful API 제공 단 모니터링 도구제공하지 않음 ...