2019. 3. 24. 00:05ㆍ[공부] 독서/실무 예제 Elasticsearch 검색엔진 기본
Elastic search 용어
Cluster : 서버들을 묶어서 분산 고유할 수 있도록 서비스로 만드는 것
curl 'localhost:9200/_cat/nodes?v'
curl 'localhost:9200/_cat/indices?v'
Node : 서버
Index : DB와 유사
Type : Table과 유사. 하지만 인덱스당 하나의 타입만을 가지도록 deprecated 될 예정 모든 type은 "_doc"으로 통일될 듯
Document : 실제 데이터
Shard
Primary Shard : 데이터를 인덱스에 저장할 때 몇개로 나눠서 분산 저장 할 것인가. 기본값 5
Replica Shard : 분산 저장한 데이터를 몇개 복제해서 안전성을 높일 것인가. 검색 처리량도 증가시킬 수 있다. 기본값 1
ex. Primary Shard = 3, Replica Shard = 2 이면 이 인덱스는 3 + (3 * 2) 개의 Shard가 존재하게된다.
(Replica Shard는 Primary Shard와 같은 곳에 존재해선 안된다.)
Route
같은 카테고리의 문서를 같은 샤드에 저장해서 검색 처리 성능을 높이는 방법
라우팅을 설정하면 검색을 수행해야하는 샤드를 바로 설정 가능하고 처리속도가 올라간다.
elasticsearch.yml 설정
Node 설정
node.master : true // 마스터 노드 : 전체 클러스터, 노드, 샤드의 조정자 역할 (한 클러스터에 최소 2개 이상이 좋음)
node.data : true // 데이터 노드 : 데이터를 저장, 검색 수행
node.client : true // 클라이언트 노드 : 마스터 노드로 사용하지 않을 경우
// 로드 벨런서 노드 : master, data 둘 다 false 일 경우. 트래픽 분산, 결과 통합 역할을 수행
Index 설정
index.mapper.dynamic : true // 인덱스에 데이터를 넣으면 자동으로 매핑 설정
index.refresh_interval : "1s" // 인덱스에 데이터가 들어올 때 검색에 반영하는 작업을 언제 수행할지 주기 설정
action.auto_create_index : true // 자동 인덱스 설정
action.disable_shutdown : true // REST API로 노드 shutdown 기능 활성화
Network 설정
network.host : locahost
http.enabled : true // http (REST API) 사용 활성화
http.port : 9200 // http (REST API) 포트
transport.tcp.port : 9300 // TCP 포트
transport.tcp.compress : true // TCP 통신할 경우 압축하겠다.
Gateway 설정
클러스터 메타정보, 인덱스 설정, 메핑 정보를 어떻게 저장하여 장애 대응할 것인가.
gateway.type : local // local 이외는 deprecated
Discovery 설정
클러스터 구성시 노드간 통신, 마스터 노드 관리를 어떻게 할 것인가
discovery.zen.ping.multicast.enabled : false // 같은 네트워크 안의 모든 노드와 discovery 통신하겠다. false 추천
discovery.zen.minimum_master_nodes : 2 // 마스터 노드의 최소 단위 (2개 이상 추천)
discovery.zen.ping.unicast.hosts : ["localhost:9300","localhost:9301"]
discovery.zen.ping.timeout : 3s
Elastic search REST API
localhost:9200/_cluster
localhost:9200/_nodes
localhost:9200/_status // 클러스터, 노드 상태 점검
localhost:9200/_stats // 시스템, index 통계 정보
localhost:9200/_validate // 쿼리 유효성 점검
localhost:9200/_bulk
localhost:9200/_count
localhost:9200/_search
localhost:9200/_msearch // 멀티 데이터 검색
localhost:9200/_mget // 멀티 데이터 패치localhost:9200/_suggest // 검색어 자동완성, 추천
localhost:9200/INDEX/_settings // 인덱스 설정 정보
localhost:9200/INDEX/_mapping // 인덱스 설정 정보
'[공부] 독서 > 실무 예제 Elasticsearch 검색엔진 기본' 카테고리의 다른 글
Elastic search 실전 기본 (쿼리 추가 기능) (0) | 2019.03.24 |
---|---|
Elastic search 실전 기본 (검색 응답, 검색 방법) (0) | 2019.03.24 |
Elastic search 실전 기본 (인덱스 스키마 설정) (0) | 2019.03.24 |