BigData/ElasticSearch 8

Elasticsearch 코디네이팅 노드 동작 테스트

기본 동작이지만 가장 궁금했던 내용에 대해 테스트를 진행했다. N개의 노드를 구성하고, 마스터 노드를 제외한 나머지 노드에 검색 또는 문서 생성 등을 요청할 경우 잘 생성될까? 이론상으로 알고 있는 내용을 확인하기 위함이다. 환경 구축 Node는 2개로 구성하고 각자의 역할을 다음과 같이 정의한다. 1번 노드: 마스터 노드, 데이터 노드, 포트: 9200 2번 노드: 데이터 노드, 포트: 9201 1번 노드 설정 cluster.name: my-cluster node.name: node-master node.master: true node.data: true node.ingest: false http.port: 9200 network.host: [_site_, _local_] discovery.seed_h..

초보자를 위한 Elasticsearch 설정 파일(elasticsearch.yml) 가이드

elasticsearch.yml 파일 구조 elasticsearch.yml 파일은 YAML (YAML Ain't Markup Language) 형식으로 작성되어 있으며, 키-값 쌍으로 구성되어 있습니다. 주석은 # 기호를 사용하여 추가할 수 있습니다. 여러 설정을 구분하기 위해 빈 줄을 사용할 수 있습니다. # 예시 cluster.name: my_cluster node.name: my_node 1. 클러스터 및 노드 관련 설정 cluster.name: 클러스터의 이름을 설정합니다. 노드가 속한 클러스터를 식별하는 데 사용됩니다. node.name: 노드의 이름을 설정합니다. 클러스터 내에서 노드를 식별하는 데 사용됩니다. node.master: 노드가 마스터 후보로 동작할지 여부를 설정합니다. true ..

Elasticsearch 노드의 종류와 역할 (feat 동작 흐름)

Elasticsearch는 분산형 검색 및 분석 엔진으로, 여러 노드로 구성된 클러스터로 동작합니다. 이러한 노드들은 각자 다양한 역할을 수행하며, 클러스터의 전체적인 성능과 안정성에 기여합니다. 1. Master 노드 Master 노드는 클러스터의 관리와 조정을 담당하는 노드입니다. 클러스터 내의 모든 노드는 Master 노드를 통해 연결되며, Master 노드는 클러스터의 상태를 관리하고 변경 사항을 전파합니다. 주요 역할은 다음과 같습니다: √ 클러스터 상태 관리 √ 노드 추가 및 제거 조정 √ 샤드 할당 및 재할당 node.master: true node.data: false node.ingest: false cluster.initial_master_nodes: ["node-1"] # 이 노드의 ..

Elasticsearch에서 사용되는 주요 용어 10가지

Elasticsearch에서는 다양한 용어와 개념이 사용되는데, 이번 포스트에서는 Elasticsearch에서 사용되는 주요 용어 10가지에 대해 알아보겠습니다. 1. Node Elasticsearch 클러스터에서 노드는 클러스터의 구성 단위입니다. 각 노드는 클러스터의 일부분을 구성하며, 데이터를 저장하고 검색을 수행합니다. Elasticsearch 클러스터는 여러 개의 노드로 구성될 수 있으며, 각 노드는 서로 상호작용하여 데이터를 분산하여 처리합니다. 2. Cluster Elasticsearch 클러스터는 데이터를 분산하여 처리하며, 데이터의 안정성과 가용성을 보장합니다. Elasticsearch 클러스터는 노드의 집합으로 구성되며, 각 노드는 클러스터의 일부분을 구성합니다. 3. Index Ela..

Keyword Field를 활용하는 다양한 쿼리 예제

본 내용은 윈도우에 설치된 Elasticsearch 7.10.2 버전으로 기준으로 작성되었습니다. 1. term query term query는 정확한 매치를 찾기 위해 사용됩니다. 예를 들어, 특정 필드에서 "Elasticsearch"라는 값을 가지는 문서를 찾으려면 다음과 같이 사용할 수 있습니다. GET http://localhost:9200/search_test_index/_search { "query": { "term": { "keyword_field": { "value": "Elasticsearch" } } } } 2. terms query terms query는 주어진 terms 중 하나라도 매칭되는 모든 문서를 찾습니다. 예를 들어, "test1" 또는 "Elasticsearch"라는 값을..

초보자를 위한 Elasticsearch 시작하기: CRUD

본 내용은 윈도우에 설치된 Elasticsearch 7.10.2 버전으로 기준으로 작성되었습니다. 1. Index 생성하기 PUT http://localhost:9200/test_index Header: Content-Type: application/json Body: { "settings": { "index": { "number_of_shards": 1, "number_of_replicas": 0 } }, "mappings": { "properties": { "field1": { "type": "text" }, "field2": { "type": "text" }, "field3": { "type": "text" }, "field4": { "type": "text" } } } } 응답: { "acknow..

Elasticsearch 주요 field data types (V7.10 기준)

Text field - 문자열 데이터를 저장할 때 사용하는 필드 - 분석기(analyzer)를 사용하여 텍스트를 토큰(token)으로 분리하고, 대소문자를 정규화하며, stopword 제거 - 검색할 때는 토큰 단위로 일치 여부를 확인합니다. "The quick brown fox jumps over the lazy dog."를 저장한 후, "quick"을 검색할 때, 해당 문서가 반환됩니다. 하지만 "quickly"를 검색하면 검색 결과에서 제외됩니다. Keyword field - 문자열 데이터를 그대로 저장할 때 사용하는 필드 - 대소문자 구분이 이루어지며, 분석기(analyzer) 사용 안함 - 정확한 일치 여부를 확인할 때 사용 "New York"를 저장한 후, "New York"으로 검색할 때 해..

Elasticsearch에서 동적 매핑과 필드 정의하기

Elasticsearch는 검색 엔진으로 인기가 많은 오픈 소스 소프트웨어입니다. 이번 글에서는 Elasticsearch의 스키마 파일을 이용한 인덱스 생성과 데이터 삽입, 그리고 필드 매핑 정보 정의에 대해 알아보겠습니다. 우선, Elasticsearch에서는 데이터를 저장하기 위해 인덱스를 생성해야 합니다. 이때 인덱스 생성을 위해 스키마 파일을 작성해야 합니다. 스키마 파일은 인덱스의 설정과 매핑 정보를 정의하는 파일로, JSON 형식으로 작성됩니다. 예를 들어, 다음과 같은 스키마 파일을 작성해보겠습니다. { "settings": { "number_of_shards": 1, "number_of_replicas": 0 }, "mappings": { "properties": { "title": { "..