분류 전체보기
-
Elasticsearch + Springboot🔍 elastic search 2022. 9. 27. 15:34
Docker-compose로 Elasticsearch 설치 compose 파일 생성 vi elasticsearch.yml version: '3.7' services: es: image: docker.elastic.co/elasticsearch/elasticsearch:7.15.2 container_name: elasticsearch environment: - node.name=single-node - cluster.name=beomsic - discovery.type=single-node ports: - 9200:9200 - 9300:9300 networks: - es-bridge kibana: container_name: kibana image: docker.elastic.co/kibana/kibana..
-
ES - Aggregations🔍 elastic search 2022. 9. 22. 17:23
Aggregations Elasticsearch는 검색엔진 뿐 아니라 로그 분석 을 비롯한 다양한 목적의 데이터 시스템으로 사용되고 있다. 이렇게 활용이 가능한 이유는 데이터를 단순히 검색할 뿐 아니라 여러가지 연산을 할 수 있는 Aggregation 기능이 있기 때문이다. Kibana 에서 바 차트, 파이 차트 등으로 데이터를 시각화 할 수 있는데 여기서 Aggregation 기능을 사용 aggregation은 번역하면 “집계” 라는 뜻이지만, ES에서는 원문대로 aggregation 혹은 애그리게이션으로 많이 표현. 크게 세 종류 Metrics Aggregations Bucket Aggregations Pipeline Aggregations Metrics Aggregations 필드 값에서 합계 또는..
-
ES - 텍스트 분석🔍 elastic search 2022. 9. 22. 13:53
역색인 구조 Elasticsearch는 역색인 구조를 사용해 데이터를 빠르게 검색할 수 있다. 각 문서의 text를 term으로 분할하고, term 들을 도큐먼트와 매핑 특정 키워드(term)로 포함하고 있는 문서들에 대한 Primary Key를 맵핑하는 인덱스 테이블 생성 인덱스 테이블을 활용하여 빠른 문서 탐색이 가능하다. 주로 BTree, Trie, Hash Table 등의 자료구조를 활용하여 구현 단점 영어의 경우 대소문자를 다른 텍스트로 인지한다. 복수형과 단수형이 동일하게 검색되지 않는다. jump, leap는 같은 의미지만 다른 텍스트로 인지 → 텍스트 분석을 통해 해결 텍스트 분석 Elasticsearch는 문자열 필드가 저장될 때 데이터에서 검색어 토큰을 저장하기 위해 여러 단계의 처리 ..
-
ES - 데이터 검색🔍 elastic search 2022. 9. 21. 19:55
ES는 검색에 사용하기 위한 데이터를 저장할 때 Term 으로 분석 과정을 거쳐 저장하기 때문에 검색 시, 대소문자, 단수나 복수, 원형 여부와 상관없이 검색이 가능하다. 이러한 특징을 Full Text Search ( = 전문 검색) 이라고 한다. Query DSL Elasticsearch는 검색을 위한 쿼리 기능을 제공 이런 데이터 시스템에서 제공하는 쿼리 기능을 Query DSL(Domain Specific Language) 이라고 이야기 한다. Elasticsearch의 Query DSL은 모두 JSON 형식으로 입력 검색 API를 사용해 Elastic search 데이터 스트림 또는 인덱스에 저장된 데이터를 검색하고 집계할 수 있다. API 쿼리 요청 본문 매개 변수는 Query DSL로 작성된..
-
ES - 기본 API🔍 elastic search 2022. 9. 21. 19:42
Index, Type, Document에 대한 CRUD API Index - RDBMS의 database 같은 개념 Type - RDBMS의 table 개념 Document - RDMBS의 ROW 같은 개념 입력 (PUT) 데이터 입력시 PUT 메서드를 이용 조회 (GET) GET 메서드로 가져올 도큐먼트의 URL을 입력시 도큐먼트의 내용을 가져온다. 삭제 (DELETE) DELETE 메서드를 이용해서 도큐먼트 또는 인덱스 단위의 삭제가 가능 수정 (POST) POST 메서드는 PUT 메서드와 유사하게 데이터 입력에 사용 가능 도큐먼트 id 의 자동 생성은 PUT 메서드로는 동작하지 않는다. ES API 구조 💡 http://://_doc/ 인덱스 클러스터에 존재하는 모든 index 조회 curl -XG..
-
Docker로 ES 설치하기🔍 elastic search 2022. 9. 21. 19:34
ES를 설치하는 방법 컴퓨터에 직접 ES 설치 docker를 사용해서 ES 설치 docker를 사용하면 elasticsearch, kibana 를 설치한 이미지를 내려받기만 하면 관련 서버를 손쉽게 구성할 수 있다. docker에 ES 설치하기 ES 이미지 다운로드 docker pull elasticsearch:{version} docker 이미지가 정상적으로 다운되었는지 확인 docker images elasticsearch가 있으면 정상적으로 설치가 된것이다. Docker 실행 ES 이미지를 정상적으로 받으면, docker 명령어를 통해 컨테이너를 실행 docker run -d -p 9200:9200 -p 9300:9300 -e "discover.type=single-node" --name elast..
-
ElasticSearch🔍 elastic search 2022. 9. 20. 18:14
Apache Lucene(아파치 루씬) 기반의 Java 오픈 소스 분산형 RESTful 검색 및 분석 엔진 Elasticsearch를 통해 루씬 라이브러리를 단독으로 사용할 수 있으며, 방대한 양의 데이터를 신속하게( 거의 실시간) 저장, 검색, 분석을 수행할 수 있다. 특히 정형 데이터, 비정형 데이터, 지리 데이터등 모든 타입의 데이터 처리 가능ES는 JSON 문서(Document)로 데이터를 저장하기 때문 HTTP 프로토콜로 접근이 가능한 REST API를 통해 데이터 조작을 지원 ElasticSearch는 단독 검색을 위해 사용하거나, ELK(ElasticSearch & Logstash & Kibana) 스택을 기반으로 사용 주로 ELK는 로드밸런싱되어 있는 WAS의 흩어져 있는 로그를 한 곳으로..
-
1장 - 객체, 설계📕 book/오브젝트 2022. 9. 18. 18:07
티켓 판매 애플리케이션 로버틴 마틴은 소프트웨어 모듈이 가져야 하는 세 가지 기능에 관해 설명 모듈 : 크기와 상관없이 클래스나, 패키지, 라이브러리 같은 프로그램을 구성하는 임의의 요소 모든 소프트웨어 모듈에는 3가지 목적이 있다. 실행 중에 제대로 동작하는 것. 변경을 위해 존재하는 것. ( = 변경이 용이 ) 코드를 읽는 사람과 의사소통하는 것 ( = 이해하기 쉬워야 한다. ) 예상을 빗나가는 코드 이해 가능한 코드 : 동작이 우리의 예상에서 크게 벗어나지 않는 코드 상식과는 너무나도 다르게 동작 코드를 읽는 사람과 제대로 의사소통하지 못한다. 코드를 이해하기 위해 여러 가지 세부적인 내용들을 한번에 기억하고 알고 있어야 한다. 코드를 작성하는 사람, 읽고 이해해야 하는 사람 모두에게 부담 변경에 ..