Elastic Search 9

Elasticsearch 공부 정리 - 4

개념 정리 1. How Searching Works client가 검색 요청을 하면 클러스터 내 노드 중 하나로 요청이 가고 해당 노드는 coordinating node가 됨 기본적으로 모든 노드는 coordinating node가 될 수 있으며 HTTP 요청을 받을 수 있음 coordinating node는 다른 노드에게 쿼리를 전달하는 역할을 수행하고 검색 결과를 합쳐서 클라이언트에게 반환해주는 역할을 수행 coordinating node도 shard를 가지고 있으므로 자기 자신에 대해 검색 쿼리를 수행함 이후에는 다른 노드 내 샤드(primary 혹은 replica)로 검색 쿼리를 브로드캐스팅하고 응답이 오면 결과들을 합치고 정렬한 뒤 클라이언트에게 결과를 반환 특정 문서의 id를 요청하는 검색 쿼..

Elastic Search 2022.12.08

Elasticsearch 공부 정리 - 3

개념 정리 1. Analysis 텍스트 분석(text analysis)이라고도 함 text field/values에만 적용 가능 text value는 document를 색인할 때 analysis 적용 결과는 검색에 효율적인 자료구조에 저장됨 "_source" 키에 매칭 되는 객체에 값들이 색인됨 해당 객체는 document를 색인할 때 값 그대로를 저장 document를 검색할 때 _source 객체가 사용되지는 않음 앞서 언급했듯이 _source 객체는 document를 색인할 때 값 그대로를 가지고 있음 제품의 설명이 길 경우 전처리 없이는 효율적으로 검색할 수 없기 때문에 _source 객체를 검색할 때 사용하지 않음 text는 전처리가 진행된 후 저장이 됨 정리하자면 document -> anal..

Elastic Search 2022.12.05

[Elasticsearch] 설정 관련 정리

개요 Elasticsearch 주요 구성 및 설정을 간단하게 정리해보겠습니다. 저도 아직 공부 중이기 때문에 부정확한 정보가 있을 경우 댓글로 알려주시면 즉시 수정하도록 하겠습니다! 1. 설정 우선순위 모든 설정은 Static이나 Dynamic 속성을 가지며 우선순위는 Transient > Persistent > elasticsearch.yml > Default 순 1.1 Transient 1회성 설정 클러스터 재시작할 경우 리셋 1.2 Persistent 영구적인 설정 클러스터 재시작하더라도 유지 1.3 elasticsearch.yml 해당 설정은 로컬 구성으로만 사용하는 것을 권고 dynamic 설정을 통해 클러스터 설정을 관리 static 설정의 경우 elasticsearch.yml에 구성하며, 클..

Elastic Search 2022.11.16

[Elasticsearch] Components 정리

개요 Elasticsearch의 주요 구성 요소들인 Cluster, Node, Index, Shard, 그리고 Document에 대해서 간단하게 정리해보겠습니다. Term > Field > Document > Shard > Index > Node > Cluster 순으로 상위 개념이라고 보시면 됩니다. 주의: 현재 시점 Elasticsearch 최신 버전은 8.4이며 현업에서 대부분 7.X 이상 버전이 쓰이고 있습니다. 참고한 공식 한글 문서는 5.4 버전이며 이후 버전에 대해서는 갱신이 되지 않은 상태입니다. 7.X 버전부터 기본 샤드 개수와 같이 변경된 내용이 있으므로 확인이 필요합니다. 1. Cluster 클러스터는 하나 이상의 노드(서버)가 모인 것이며, 이를 통해 전체 데이터를 저장하고 모든 노..

Elastic Search 2022.10.12

[Elasticsearch] Lucene 간단 정리

Lucene 오픈소스 기반 검색 라이브러리 검색 엔진이 갖춰야 하는 기본 기능 제공 검색 색인 형태소 분석 Lucene의 기본 개념 인덱스 (Index) 문서 (Document) 필드 (Field) 용어 (Term) Field는 Term의 집합, Document는 Field의 집합, 그리고 Index는 Document의 집합 정리하자면, Lucene은 Term < Field < Document < Index와 같은 각 단위의 집합 구조를 가짐 * Lucene 기반의 대표적인 검색 엔진이 Elasticsearch와 Solr 역 색인 구조 (Inverted Index Structure) 검색에서 사용되는 자료구조로 hashmap과 비슷함 색인어에 대한 통계를 저장하는 구조 용어에 대해서 문서를 나열하는 구조..

Elastic Search 2022.06.04

[Elasticsearch] update by query 정리

update by query 과정 도식화 update by query 과정 update by query 요청은 coordinating node에서 수신하고 처리되며 요청을 받자마자 인덱스의 snapshot이 생성 snapshot이 생성되면서 쿼리 조건에 맞는 모든 document들을 찾기 위해 각각의 인덱스들에 search query가 전송됨 쿼리 조건에 맞는 document들을 찾으면 document를 업데이트하기 위해 bulk request가 전송됨 bulk request의 결과 내 batches 필드를 통해 document를 회수하기 위해 사용된 배치 수를 파악할 수 있으며, 반환된 document의 개수가 만개를 넘어설 것을 대비해 search query는 scroll API를 사용 search ..

Elastic Search 2021.07.22

[Elasticsearch] document 읽고 쓰는 과정 정리

1. ES에서 document를 읽어오는 과정을 도식화 1.1 ES에서 document를 읽어오는 과정 읽기 요청은 coordinating node에서 수신 및 처리 이후 routing 공식을 통해 document가 어떤 primary 샤드 혹은 replication group 내 존재하는지 확인 만약 es가 document를 바로 primary 샤드로부터 읽어온다면, 읽어온 document들이 모두 동일한 샤드에 위치하는 문제가 발생 즉, scaling이 잘 안 되는 문제가 발생 -> doesn't scale well 따라서, es는 이러한 문제를 방지하기 위해 Adaptive Replica Selection 기법을 사용하며 ARS는 최적의 샤드를 선택 ARS를 통해 샤드가 선택되면, coordinat..

Elastic Search 2021.07.22

Elasticsearch 공부 정리 - 2

개념 정리 1. index 삭제하는 쿼리 DELETE /[인덱스명] 2. index 생성하는 쿼리 3. index 내 document를 입력하는 쿼리와 결과 * 기존 설정에서 primary shard + two replica shards였다면 total은 3, 즉 total은 replication group와 동일하며 shard 업데이트 성공 횟수는 successful에, 실패 횟수는 failed에 표시 4. ID를 기반으로 document 검색하는 쿼리 GET [인덱스명]/_doc/[아이디] 결과에서 "found" 필드가 true면 해당 ID를 지닌 document가 존재한다는 의미 결과에서 "found" 필드가 false라면 해당 ID를 지닌 document가 존재하지 않는다는 의미 5. ID를 기반..

Elastic Search 2021.07.22

Elasticsearch 공부 정리 - 1

개념 정리 1. Index 모든 document들은 인덱스 내 저장됨 인덱스는 모든 document들을 논리적으로 그룹화시키며 확장성(scalability)과 가용성(availability)과 관련된 설정 옵션들을 제공 정리를 하자면, 인덱스는 유사한 특성을 가지며 논리적으로 관련이 있는 document들의 모음 인덱스가 저장할 수 있는 document들의 개수 제한이 없는 편 인덱스는 검색 쿼리(search query)가 실행되는 주체 2. Document 데이터는 document 형태로 저장되어 있으며 이는 JSON 형태로 생각하면 됨 document들은 인덱스를 통해 그룹화 사용자가 elastic search 내 저장한 JSON 데이터는 "_source"라는 필드 내 저장 document를 색인할 ..

Elastic Search 2021.07.12