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

좋은 웹페이지 즐겨찾기