본문 바로가기

Monitoring

(25)
09. Compound Query Compound Query 앞서 이미 query 의 종류에 대해 살펴보았고 지금까지 본 모든 query 는 leaf query 로 이는 Elasticsearch query 의 기본이 되며 주어진 fields 에 대해 값을 검색시 하나의 operation 만 허용한다. ( n field + 1 operation ) 이에 반해 compound query 란 이런 leaf query 의 조합으로 다수의 operation 을 조합하는 것이다. Query type context vs Filter type context Compound query 는 query type context 와 filter type context 를 구분하여 조합하게 되는데 context 는 한글로 표현하자면 "절" 이다. 바꿔말하면 qu..
08. Query Search Method 아래는 일반적으로 Elasticsearch 에서 사용되는 search API 의 형태로 DSL 쿼리를 많이 사용한다. 예를 들어 아래 DSL 쿼리는 description value 가 read wine 과 match 되는 documents 를 찾도록 시도하게 된다. 좀 더 간단하게 value 를 따로 넣지 않고 direct 로 넣어도 된다. 다음과 같은 쿼리를 URI 쿼리라고 하는데 이를 DSL 쿼리로 바꾸면 다음과 완전히 동일하다. Query DSL Types Elasticsearch 는 match, term, range 등의 Leaf query 와 bool, dis_max 같은 복합 Query ( Leaf query 를 조건식으로 결합하는 query ) 를 제공한다. 아직 아..
07. Analyzer Elasticsearch 에 텍스트 입력시 필드를 인덱싱하고 Documents 화 할때 Lucene 엔진에 의해 텍스트가 분석되어 입력된다. 이때 텍스트를 분석하는 엔진을 Analyer 라고 한다. Lucene 에서 제공하는 Analyer 는 하나의 Tokenizer 와 다수의 Filter 로 구성된다. Filter 는 CharFilter 와 TokenFilter 의 두 가지가 있는데 CharFilter 는 입력된 문자열에서 불필요한 문자를 normalization 하기 위해 사용되며 TokenFilter 는 tokenizer 에 의해 분해된 token 에 대한 Filter 처리를 하게 된다. 기본적으로 CharFilter 에 의해 공백 콤마 등의 문자를 삭제하며 예로 문서의 유형별로 xml 일 경우 의..
06. Mapping Mapping 은 관계형데이터베이스에서 스키마 개념과 동일하다. 지금까지는 Mapping 없이 Elasticsearch에 데이터를 넣었지만, Mapping 없이 데이터를 넣는것은 매우 위험하다. 예를 들어 데이터에 날짜를 넣는데 그게 날짜인지 아닌지 모르며 타입형에서도 혼선이 올 수 있다. Kibana로 시각화 할때 date 타입으로 보여주고 싶어도 형이 안맞으면 적절한 출력이 안될 수도 있다. 따라서 데이터 관리를 위해서라도 Mapping 을 먼저 추가하는 것이 분석이나 시각화할때 도움이 될 수 있다. https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html Data Type Mapping 을 하기 위해 Elasticsea..
05. Document CURL 을 사용한 경우 아래 사이트를 통해서 기본 사용법을 읽히면 된다. https://12bme.tistory.com/171 Order Form Elasticsearch 로 명령을 주는 형태는 아래와 같다. /// ... Result ?pretty 를 붙여주면 Result Json 을 읽기 쉬운 모양으로 결과값이 리턴된다. Creating an Index document 는 인덱스 내부에 생성해야 하므로 먼저 index 를 만들어 보자. 인덱스를 생성할 때는 PUT 명령을 사용하며 간단히 아래와 같은 방법으로 product 라는 이름의 Index 를 추가할 수 있다. 결과값을 통해 index 로 product 가 지정되었음을 알 수 있다. Add 인덱스를 추가하였으니 이제 인덱스에 들어갈 Docume..
04. Cluster https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-nodes.html
03. Install 아래 사이트를 통해 Elastic Stack 을 14일간 Free Trial 을 얻을 수 있다. https://www.elastic.co/cloud/elasticsearch-service/signup 이메일을 입력후 Start Free Trial 버튼을 누르면 다음 화면으로 바뀌게 되며 입력한 이메일에 들어가면 아래의 이메일이 온 것을 확인할 수 있다. Deployment https://cloud.elastic.co/login Verify Email 버튼을 누르면 VM 을 생성및 생성한 VM 접근을 하기 위한 홈 화면이 나오는데 Password 만 수정후 Set password 버튼을 누른다. 그러면 다음과 같은 화면이 나타나는데 Create deployment 를 누른다. 그럼 다음 화면이 나오는데 나..
02. Overview Cluster 와 Node (물리적 구분) 노드는 데이터를 저장하며, 데이터 인덱싱과 검색 작업에 관여하는 클러스터의 구성원이 되는 단일 서버들을 가리킨다. Index 와 Document 인덱스는 유사한 Property 를 가지는 Document 의 집합으로 인덱스 이름으로 식별되며 논리적인 그룹이라고 보면 된다. Shard 하나의 인덱스는 노드 서버의 용량을 초과할 만큼의 대량의 데이터가 저장 가능하다. 따라서 인덱스를 여러 조각(Shared) 로 나눠서 저장하는 경우가 필요할 수 있는데 이렇게 나누는 것을 샤딩(Sharding) 이라고 한며 인덱스를 생성시 Shard 개수를 지정할 수 있다. (기본값 5) 아래는 단일 노드의 용량이 512 GB 이고 Index 생성시 Shard 개수를 4로 한 경우에..