Elasticsearch 학습 노트 (3): ES 의 클 러 스 터 검사, 문서 CRUD
5270 단어 Elasticsearch
ES 는 문 서 를 위 한 분석 검색엔진 입 니 다.
(1) 응용 시스템 의 데이터 구 조 는 기본적으로 모두 대상 을 대상 으로 한다.
(2) 대상 데 이 터 를 데이터베이스 에 저장 하면 분해 만 할 수 있 고 편평 한 여러 장의 표 로 변 할 수 있 으 며 조회 할 때마다 대상 형식 으로 복원 해 야 하기 때문에 상당히 번거롭다.
(3) ES 는 문 서 를 대상 으로 하 는 것 으로 문서 에 저 장 된 데이터 구조 로 대상 을 대상 으로 하 는 데이터 구조 와 같다. 이런 문서 데이터 구 조 를 바탕 으로 es 는 복잡 한 색인, 전문 검색, 분석 집합 등 기능 을 제공 할 수 있다.
(4) ES 의 document 은 json 데이터 형식 으로 표현 된다.
2. 전자상거래 데 이 터 를 바탕 으로 ES 의 CRUD 작업 을 한다.
전제: 설치 및 시작 es. kibana 도 구 를 사용 하여 관련 작업 을 하고 이번 작업 과 후속 작업 은 모두 ES5 를 기반 으로 합 니 다.
es 는 cat api 세트 를 제공 하여 우리 es 의 관련 데 이 터 를 도 울 수 있 습 니 다.
(1) 집단의 건강 상 태 를 빠르게 살 펴 본다?yellow,green,red?
GET _cat/health?v
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1560233646 14:14:06 elasticsearch yellow 1 1 1 1 0 0 1 0 - 50.0%
es 의 상 태 는 다음 세 가지 가 있 습 니 다.
green: 모든 색인 의 primary shard 와 replica shard 는 active 상태 입 니 다.
yellow: 모든 색인 의 primary shard 는 active 상태 이지 만 일부 replica shard 는 active 상태 가 아니 라 사용 할 수 없 는 상태 입 니 다.
red: 모든 primary shard 가 active 상태 가 아니 라 일부 색인 에서 데 이 터 를 잃 어 버 렸 습 니 다.
이 곳 은 하나의 es 프로 세 스, 즉 하나의 node 만 시 작 했 기 때문에 현재 es 중 하나의 index 만 있 고 kibana 가 자체 적 으로 내장 하여 만 든 index 입 니 다.기본 설정 은 index 에서 5 개의 primary shard 와 5 개의 replica shard 를 분배 합 니 다.여기 kibana 에 내 장 된 index 만 시작 되 었 습 니 다.primary shard 와 replica shard 는 같은 기계 에 부족 합 니 다.그래서 지금 은 yellow 상태 입 니 다.이 때 두 번 째 es 프로 세 스 를 다시 시작 하면 상태 가 green 으로 변 합 니 다.
(2) 클 러 스 터 에 어떤 색인 이 있 는 지 빠르게 봅 니 다.
GET _cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open .kibana dbYTE7RTScupaV8INtITYQ 1 1 1 0 3.1kb 3.1kb
(3) 간단 한 색인 작업
색인 만 들 기: put/색인 이름
예: put/testindex?pretty
색인 삭제: delete/색인 이름
예: delete/testindex?pretty
(4) 상품 의 CRUD
1. 상품 추가, 문서 만 들 기, 색인 형식 만 들 기: put/index/type/id {json 데이터}
예:
put /ecommerce/produce/1
{
"name": "gaolujie yaogao",
"desc": "gaoxiao meibai",
"price": 30,
"producer": "gaolujie producer",
"tags": ["meibai", "fangzhu"]
}
es 는 index 와 type 을 자동 으로 만 듭 니 다. 미리 만 들 지 않 아 도 됩 니 다. 또한 es 는 document 의 모든 field 필드 에 거꾸로 색인 을 만들어 검색 할 수 있 도록 기본 값 으로 만 듭 니 다.
2. 상품 조회: 문서 검색 형식: get/index/type/id
예: GET/commerce/product/3
{
"_index": "ecommerce",
"_type": "product",
"_id": "3",
"_version": 1,
"found": true,
"_source": {
"name": "zhonghua yagao",
"desc": "caoben zhiwu",
"price": 40,
"producer": "zhonghua producer",
"tags": [
"qingxin"
]
}
}
3. 문서 바 꾸 기
PUT /ecommerce/product/1
{
"name" : "jiaqiangban gaolujie yagao",
"desc" : "gaoxiao meibai",
"price" : 30,
"producer" : "gaolujie producer",
"tags": [ "meibai", "fangzhu" ]
}
get /ecommerce/product/1
{
"_index": "ecommerce",
"_type": "product",
"_id": "1",
"_version": 2,
"found": true,
"_source": {
"name": "jiaqiangban gaolujie yagao",
"desc": "gaoxiao meibai",
"price": 30,
"producer": "gaolujie producer",
"tags": [
"meibai",
"fangzhu"
]
}
}
교체 방식 의 번 거 로 운 점 은 매번 교체 할 때마다 모든 field 를 가 져 가 야 정확 한 정보 수정 을 할 수 있다 는 점 이다.
그럼 일부 필드 만 업데이트 하 는 작업 은 어떻게 합 니까?
POST /ecommerce/product/1/_update
{
"doc": {
"name": "chaojiban gaolujie yaogao"
}
}
result:
{
"_index": "ecommerce",
"_type": "product",
"_id": "1",
"_version": 3,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
}
}
GET /ecommerce/product/1
{
"_index": "ecommerce",
"_type": "product",
"_id": "1",
"_version": 3,
"found": true,
"_source": {
"name": "chaojiban gaolujie yaogao",
"desc": "gaoxiao meibai",
"price": 30,
"producer": "gaolujie producer",
"tags": [
"meibai",
"fangzhu"
]
}
}
4. 문서 삭제
형식: delete/index/type/id
DELETE/ecommerce/product/1
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Embulk를 사용하여 ElasticCloud로 보내기Embulk에서 ElasticCloud에 보낼 수 있을까라고 생각비망록도 겸해 기술을 남깁니다 Embulk 설치 ElasticCloud (14 일 체험판) brew라면 아래 명령 입력 파일 만들기 파일 내용 seed...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.