ES 쓰다보면

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

 

같은걸 겪기도 한다. 옛날옛적에 메모장에 메모해둔게 있어서 카톡방에 공유하면서 정리.

 

sudo -s su - 

(login root) swapoff -a 

마스터노드랑 데이터노드는 다 껐다. ingest랑 coordi는 vm이라 필요없어서 안함.

 

sudo /sbin/sysctl -w fs.file-max=655360

sudo /sbin/sysctl -w vm.max_map_count=262144

sudo /sbin/sysctl -w vm.overcommit_memory=1

sudo /sbin/sysctl -w vm.overcommit_ratio=100

sudo /sbin/sysctl -w net.core.somaxconn=65535

sudo /sbin/sysctl -w net.core.netdev_max_backlog=262144

 

이건 www로 실행이 불가능하니, 직접 서버에 들어가, 슈퍼유저 권한으로 설정한다.
그 뭐야 서버 리부팅이나 점검다녀오면 시, 위 사항 + ulimit -a 까지 풀리는 경우가 있음.

 

그래서 뭐 어쩌겠어 점검다녀와도 유지되게 해야지.

재부팅해도 사라지지 않는 설정값 설정은 대충 /etc/sysctl.d/ 로 이동해서
파일하나 아래처럼 만들고

vim 100-elasticsearch.conf

fs.file-max=655360
vm.max_map_count=262144
vm.overcommit_memory=1
vm.overcommit_ratio=100
net.core.somaxconn=65535
net.core.netdev_max_backlog=262144

sysctl -p /etc/sysctl.d/100-elasticsearch.conf

재부팅해도 사라지지 않는 스왑오프는

/etc/fstab 에서 swap 파티션 주석처리를 해뒀땅.

 

// 메인터넌스 종료 후 평소에
PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.exclude._ip": ""
  },
  "transient": {
    "cluster.routing.allocation.exclude._ip": ""
  }
}

// 보내야할 떄
PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.exclude._ip": "192.168.xxx.xxx"
  },
  "transient": {
    "cluster.routing.allocation.exclude._ip": "192.168.xxx.xxx,192.168.xxx.xxx"
  }
}

보통 온프로미스 환경에서 해당 노드의 하드디스크나 메모리나 맛이가거나 ^ㅁ^
IDC에 특정 랙에 있는 노드가 죽어버렸을 때, 다른 샤드에 이전 복제나 신규 인덱스의 샤드가 생성되는것을 방지 하기 위해 씀.
transient는 노드 재부팅되면 사라지는 일회성 persistent는 영속성이 있는데, 둘다 써주는게 안전빵.

_ip 말고 name 도되고 group도 되는걸로 알고는 있음.

빨리 진도 빼야하는데... -_-;


아무튼 배치처리 ...


살펴보니 용도는 대충 배치(일괄) 처리 이후, 그 결과 데이터를 벌크로 올리는 것 같고, 수정이나 삭제도 할 수 있나보다.


  1. 앞에서 다 삭제했지만, 벌크를 써서 만들어 넣어보자.

    ~]$ curl -X POST "localhost:9200/customer/_doc/_bulk?pretty" -H 'Content-Type: application/json' -d'

    > {"index":{"_id":"1"}}

    > {"name": "John Doe1111" }

    > {"index":{"_id":"2"}}

    > {"name": "Jane Doe2222" }

    > '

    {

      "took" : 11,

      "errors" : false,

      "items" : [

        {

          "index" : {

            "_index" : "customer",

            "_type" : "_doc",

            "_id" : "1",

            "_version" : 2,

            "result" : "updated",

            "_shards" : {

              "total" : 2,

              "successful" : 1,

              "failed" : 0

            },

            "_seq_no" : 18,

            "_primary_term" : 2,

            "status" : 200

          }

        },

        {

          "index" : {

            "_index" : "customer",

            "_type" : "_doc",

            "_id" : "2",

            "_version" : 2,

            "result" : "updated",

            "_shards" : {

              "total" : 2,

              "successful" : 1,

              "failed" : 0

            },

            "_seq_no" : 4,

            "_primary_term" : 2,

            "status" : 200

          }

        }

      ]

    }


    똑같은 패턴이다.
    잘 들어갔는지 보려면 조회.

    ~]$ curl -X GET "localhost:9200/customer/_doc/1?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 2,

      "found" : true,

      "_source" : {

        "name" : "John Doe1111"

      }

    }


    1번

    ~]$ curl -X GET "localhost:9200/customer/_doc/2?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "2",

      "_version" : 2,

      "found" : true,

      "_source" : {

        "name" : "Jane Doe2222"

      }

    }


    얜 2번.

    잘 들어간듯. 


  2. 대량 수정 삭제.

    ~]$ curl -X POST "localhost:9200/customer/_doc/_bulk?pretty" -H 'Content-Type: application/json' -d'

    > {"update":{"_id":"1"}}

    > {"doc": { "name": "John Doe becomes Jane Doe" } }

    > {"delete":{"_id":"2"}}

    > '

    {

      "took" : 23,

      "errors" : false,

      "items" : [

        {

          "update" : {

            "_index" : "customer",

            "_type" : "_doc",

            "_id" : "1",

            "_version" : 3,

            "result" : "updated",

            "_shards" : {

              "total" : 2,

              "successful" : 1,

              "failed" : 0

            },

            "_seq_no" : 19,

            "_primary_term" : 2,

            "status" : 200

          }

        },

        {

          "delete" : {

            "_index" : "customer",

            "_type" : "_doc",

            "_id" : "2",

            "_version" : 3,

            "result" : "deleted",

            "_shards" : {

              "total" : 2,

              "successful" : 1,

              "failed" : 0

            },

            "_seq_no" : 5,

            "_primary_term" : 2,

            "status" : 200

          }

        }

      ]

    }


    한번에 1은 수정 2는 삭제.

    후, 200이 떨어졌으니..... 

    조회.

    ~]$ curl -X GET "localhost:9200/customer/_doc/1?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 3,

      "found" : true,

      "_source" : {

        "name" : "John Doe becomes Jane Doe"

      }

    }

    [ㅇㅣ름이름@서버서버명 ~]$ curl -X GET "localhost:9200/customer/_doc/2?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "2",

      "found" : false

    }


    오케이 확인 끝.
    꼴랑 id 만으로 삭제함.


  3. 벌크는 중간 처리 내용이 실패한다고 하더라도... 중단하지 않는다. 라고해서 해봄.

    ~]$ curl -X POST "localhost:9200/customer/_doc/_bulk?pretty" -H 'Content-Type: application/json' -d'

    > {"update":{"_id":"2"}}

    > {"doc": { "name": "John Doe becomes Jane Doe" } }

    > {"update":{"_id":"1"}}

    > {"doc": { "name": "John Doe becomes Jane Doe122434" } }

    > 

    > '

    {

      "took" : 75,

      "errors" : true,

      "items" : [

        {

          "update" : {

            "_index" : "customer",

            "_type" : "_doc",

            "_id" : "2",

            "status" : 404,

            "error" : {

              "type" : "document_missing_exception",

              "reason" : "[_doc][2]: document missing",

              "index_uuid" : "4clf5AwmTQ-hruQl7EGJSg",

              "shard" : "2",

              "index" : "customer"

            }

          }

        },

        {

          "update" : {

            "_index" : "customer",

            "_type" : "_doc",

            "_id" : "1",

            "_version" : 4,

            "result" : "updated",

            "_shards" : {

              "total" : 2,

              "successful" : 1,

              "failed" : 0

            },

            "_seq_no" : 20,

            "_primary_term" : 2,

            "status" : 200

          }

        }

      ]

    }


    2번을 고치고 1번을 고치도록 했는데, 음... 그렇다.

    ~]$ curl -X GET "localhost:9200/customer/_doc/1?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 4,

      "found" : true,

      "_source" : {

        "name" : "John Doe becomes Jane Doe122434"

      }

    }


    1 잘 고쳐짐.


    일단 여기까지.


이전 메모에는 클러스터(싱글) 헬스체크하고, 인덱스 만들어서 조회하고, 삭제하는걸 해봤는데... 정말 이걸로 끝인가(?) 흠터레스팅 하다.


bin의 .el~서치 실행해주자. -> 터미널 나갔더니 꺼져있더라. (systemd 로 나중에 등록하던가 하자.)


:thinking_face: 인덱스는 약간 RDB 테이블 같은 녀석.



  1. 약간 오버라이트 같은 데이터 수정을 해볼 것.
    앞에서 delete로 인덱스를 날렸으니 조회하면 404가 나올거다., 일단 데이터 한번 넣어서 확인 한번 해보자.

    ~]$ curl -X GET "localhost:9200/customer/_doc/1?pretty"

    {

      "error" : {

        "root_cause" : [

          {

            "type" : "index_not_found_exception",

            "reason" : "no such index",

            "resource.type" : "index_expression",

            "resource.id" : "customer",

            "index_uuid" : "_na_",

            "index" : "customer"

          }

        ],

        "type" : "index_not_found_exception",

        "reason" : "no such index",

        "resource.type" : "index_expression",

        "resource.id" : "customer",

        "index_uuid" : "_na_",

        "index" : "customer"

      },

      "status" : 404

    }


    이렇게 404...

    ~]$ curl -X PUT "localhost:9200/customer/_doc/1?pretty" -H 'Content-Type: application/json' -d'

    {

      "name": "John Doe"

    }


    넣어주고.

    확인해보자.

    ~]$ curl -X GET "localhost:9200/customer/_doc/1?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 1,

      "found" : true,

      "_source" : {

        "name" : "John Doe"

      }

    }


    음.... name 를 잘 보자. 수정은... 다음 과 같이.

    ~]$ curl -X PUT "localhost:9200/customer/_doc/1?pretty" -H 'Content-Type: application/json' -d'

    > {

    >   "name": "Joooooooooooooooon Duck"

    > }

    > '


    res

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 2,

      "result" : "updated",

      "_shards" : {

        "total" : 2,

        "successful" : 1,

        "failed" : 0

      },

      "_seq_no" : 1,

      "_primary_term" : 1

    }



    조회 하면.

    ~]$ curl -X GET "localhost:9200/customer/_doc/1?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 2,

      "found" : true,

      "_source" : {

        "name" : "Joooooooooooooooon Duck"

      }

    }


    존덕....으로 덮어써진 것 같다. 다른점은 version 2 가 된점.

    인덱스에 새로운 아이디(2번) 추가해보자.

    ~]$ curl -X PUT "localhost:9200/customer/_doc/2?pretty" -H 'Content-Type: application/json' -d'

    > {

    >   "name": "Jane Doe"

    > }

    > '


    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "2",

      "_version" : 1,

      "result" : "created",

      "_shards" : {

        "total" : 2,

        "successful" : 1,

        "failed" : 0

      },

      "_seq_no" : 0,

      "_primary_term" : 1

    }


    얼추 드간거 같으니까. 1번 이랑 2번 한번 조회해보자. 

     ~]$ curl -X GET "localhost:9200/customer/_doc/1?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 2,

      "found" : true,

      "_source" : {

        "name" : "Joooooooooooooooon Duck"

      }

    }

    내계정명@내서버명 ~]$ curl -X GET "localhost:9200/customer/_doc/2?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "2",

      "_version" : 1,

      "found" : true,

      "_source" : {

        "name" : "Jane Doe"

      }

    }


    1,2 볼 수 있음.

    1,2 지정해서 만들었는데, 미지정하면 알아서 autoincrement 하는 .... 것 같진 않고  지정하지 않으면 Elasticsearch에서 임의 ID를 생성하여 문서 색인화에 사용합니다. 라고 함.


    그래서 미명시 put 도 해보려고...

    앞에서 메모 한 <REST Verb> /<Index>/<Type>/<ID> 법칙엔 조금 벗어남. 


     ~]$ curl -X PUT "localhost:9200/customer/_doc/pretty" -H 'Content-Type: application/json' -d'

    {

      "name": "Jane Dodsfsfsdfsdfsdfe"

    }

    '

    {"_index":"customer","_type":"_doc","_id":"pretty","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}


    json pretty 가 사라졌다... 아무튼 들어간거 같음.

    조회해보면

    ~]$ curl -X GET "localhost:9200/customer/_doc/pretty"

    {"_index":"customer","_type":"_doc","_id":"pretty","_version":1,"found":true,"_source":

    {

      "name": "Jane Dodsfsfsdfsdfsdfe"

    }


    이런식으로 들어 감.

    근데 이건 잘못사용한 예의 하나일 듯. (그래서 json이 이쁘게 안나온건가?)

    put의 경우 id를 명시해 주는 경우에만 사용해야하는데, 지금 res를 잘 보면 id가 pretty 가 되었음.

    가이드에 있는대로 써보면.

    미 명시의 경우 POST를 사용한다. (id자동생성)

     ~]$ curl -X POST "localhost:9200/customer/_doc?pretty" -H 'Content-Type: application/json' -d'

    {

      "name": "Jane Doe12323456784567890"

    }
    '


    라고 날리면, res로 

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "YrQSWmQBU_p42XDzzCOy",

      "_version" : 1,

      "result" : "created",

      "_shards" : {

        "total" : 2,

        "successful" : 1,

        "failed" : 0

      },

      "_seq_no" : 2,

      "_primary_term" : 1

    }


    id가 자동 생성되었다.

    아하. 그렇구나... id 지정 put , 자동지정 post..

     

  2. 정말로 수정해보자.

    update 명령어를 쓸 건데.........인덱스의 1번 id내용을 고치려고 한다.

    ~]$ curl -X POST "localhost:9200/customer/_doc/1/_update?pretty" -H 'Content-Type: application/json' -d'

    {

      "doc": { "name": "Jane Doe" }

    }

    '

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 3,

      "result" : "updated",

      "_shards" : {

        "total" : 2,

        "successful" : 1,

        "failed" : 0

      },

      "_seq_no" : 3,

      "_primary_term" : 2

    }


    라고 나왔는데, ........... 어.... 버전이 2에서 3이된거보면 업데이트 된 것 같긴하고.

    한번 더 다른거 예제에 있는 내용 넣어 봤다. 나이가 추가되었네.

    ~]$ curl -X POST "localhost:9200/customer/_doc/1/_update?pretty" -H 'Content-Type: application/json' -d'

    > {

    >   "doc": { "name": "Jane Doe", "age": 20 }

    > }

    > '

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 4,

      "result" : "updated",

      "_shards" : {

        "total" : 2,

        "successful" : 1,

        "failed" : 0

      },

      "_seq_no" : 4,

      "_primary_term" : 2

    }


    버전4.


    이러고 조회 한번 해보면

    ~]$ curl -X GET "localhost:9200/customer/_doc/1?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 4,

      "found" : true,

      "_source" : {

        "name" : "Jane Doe",

        "age" : 20

      }

    }


    바뀐게 보인다.

  3. 스크립트 사용해서 변경

    나이가 숫자인데, 스크립트로 증감할 수 있나보다.

    ~]$ curl -X POST "localhost:9200/customer/_doc/1/_update?pretty" -H 'Content-Type: application/json' -d'

    > {

    >   "script" : "ctx._source.age += 5"

    > }

    > '

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 5,

      "result" : "updated",

      "_shards" : {

        "total" : 2,

        "successful" : 1,

        "failed" : 0

      },

      "_seq_no" : 5,

      "_primary_term" : 2

    }


    버전이 또 올랐네.

    데이터를 조회해봄.

     ~]$ curl -X GET "localhost:9200/customer/_doc/1?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 5,

      "found" : true,

      "_source" : {

        "name" : "Jane Doe",

        "age" : 25

      }

    }



    ... 이 방식은 1ID 도큐먼트 만 증감시켜 줬느데, 

    6.3은 query로 다중 업데이트 증가가 가능하다.

    문서는 docs-update-by-query API

    이곳을 참고하면 될 것 같다. 음.. 예제 이름이 kimchy인데, https://twitter.com/kimchy 김치형님과 관련이 있나보다.

    .... 일단 나중에 보자.

  4. 문서(doc) 삭제 방법.

    ~]$ curl -X DELETE "localhost:9200/customer/_doc/1?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 6,

      "result" : "deleted",

      "_shards" : {

        "total" : 2,

        "successful" : 1,

        "failed" : 0

      },

      "_seq_no" : 6,

      "_primary_term" : 2

    }


    조회해보니 삭제가 되어 안보이는 것 같다.

    ~]$ curl -X GET "localhost:9200/customer/_doc/1?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "found" : false

    }


    없다.


    일단 일도 해야하니 ㅠㅠㅠㅠㅠㅠㅠㅠㅠ 여기까지 해두고... 다음은 배치처리인가.

ref. https://www.elastic.co/guide/en/elasticsearch/reference/current/_batch_processing.html

ref. https://www.elastic.co/guide/kr/elasticsearch/reference/current/gs-modifying-data.html

... ES 해야함.


참고문서 두개 번갈아가면서 봄.


한글 5.4 https://www.elastic.co/guide/kr/elasticsearch/reference/current/gs-installation.html

영문 6.3 https://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html



  1. 서버 하나 vm으로 받음. (다음번엔 여러대 클러스터 작업엔 엔씨블로...)

  2. 1.8 깔려있다. 감사합니다. 근데 java_home이 없음. 
    vi ~/.bash_profile  에다가 등록함.

  3. es tar 다운

    curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gz


  4.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                     Dload  Upload   Total   Spent    Left  Speed

     29 87.1M   29 25.4M    0     0   318k      0  0:04:40  0:01:21  0:03:19  378k


    용량이 좀 있네..

  5. 압축 풀고.
    tar -xvf elasticsearch-6.3.0.tar.gz


  6. cd elasticsearch-6.3.0/bin

    디렉토리 이동.

  7. bin]$ ./elasticsearch


    노드랑 싱글 클러스터 실행 가능하다고 함.

  8. OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N


    시작부터 이런게 뜨네 ..... 알아서 구성 해줄것이지..ㅠㅠ


    나머지 맥은 홈브류로, 윈도우는 인스톨러가 있는듯. 안중요하니 넘김.


  9. ./elasticsearch -Ecluster.name=my_cluster_name -Enode.name=my_node_name 



    실행 시 클러스터 이름, 노드 이름 지정가능.

  10. 음... 9200번 포트를 사용해서 rest API를 제공하나봄.(퍼블리쉬_어드레스) ... 9300 번은 뭔지 ? (바운스 어드레스)
    일단 넘어감.

  11. REST API 로 거의 모든것을 할 수 있는거 같은 느낌을 줬음.
    클러스터, 노드, 헬스체크, CURD 뭐 여러가지 등등... 고급작업까지 라고 적혀있음.

  12. 외부에서(맥북) 해당서버 ip로 curl 날리니 안되고... 흠...? 다른사람들도 이런가.

    설치 된 서버 내부에서 localhost 콘솔로 날려봄.

    ~]$ curl -X GET "localhost:9200/_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

    1529253972 01:46:12  elasticsearch green           1         1      0   0    0    0        0             0                  -                100.0%



    그 외에도 키바나 콘솔에서 다음 api를 날릴 수 있다고함.
    ... 그냥도 날릴 수 있었음. 언젠가 키바ㄴㅏ 사용법을 다음엔 알아봐야겠다. elk니까...

    일단 정상이라 그린임.

    노랑은 모든 데이터 사용가능하지만 일부 리플리카가 미배정된 상태.
    레드는 비정상. 부분동작.

  13.  ~]$ curl -X GET "localhost:9200/_cat/nodes?v"

    ip        heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name

    127.0.0.1            9          93   4    0.00    0.01     0.06 mdi       *      7EmJiq_


    노드목록은 ㅇㅣ렇게 체크 가능한것 같다. ... 짠한 유일노드.

  14. ~]$ curl -X GET "localhost:9200/_cat/indices?v"

    health status index uuid pri rep docs.count docs.deleted store.size pri.store.size


    모든 색인(indices) 나열 이라고 하는데. 없ㄷㅏ.

  15. 색인 ...  index 생성. 'customer' 라는걸 만들고 색인을 나열한다고...

    curl -X PUT "localhost:9200/customer?pretty"

     ~]$ curl -X PUT "localhost:9200/customer?pretty"

    {

      "acknowledged" : true,

      "shards_acknowledged" : true,

      "index" : "customer"

    }


    curl -X GET "localhost:9200/_cat/indices?v"


     ~]$ curl -X GET "localhost:9200/_cat/indices?v"

    health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size

    yellow open   customer axCGidU6Qy2D7Eercp5ATw   5   1          0            0       460b           460b


    아... rep가 1이라서 옐로인가봄.
    싱글 노드라서.


  16. 'customer' index 에다가 뭘 집어넣으려고 한다...


    curl -X PUT "localhost:9200/customer/_doc/1?pretty" -H 'Content-Type: application/json' -d'

    {

      "name": "John Doe"

    }

    '


    유형이 어떤지 알려줘야 한다고... 위에처럼 넣고나면.

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 1,

      "result" : "created",

      "_shards" : {

        "total" : 2,

        "successful" : 1,

        "failed" : 0

      },

      "_seq_no" : 0,

      "_primary_term" : 1

    }


    이렇게 응답이 오고.

    내부 id는 1, 타입은 doc... 뭐  등등 정보가 있음.

  17. ~]$ curl -X GET "localhost:9200/customer/_doc/1?pretty"

    {

      "_index" : "customer",

      "_type" : "_doc",

      "_id" : "1",

      "_version" : 1,

      "found" : true,

      "_source" : {

        "name" : "John Doe"

      }

    }



    found 필드? - 찾았다고 알려주는 필드. source 는 앞에 넣은 json 문서네.


  18. 삭제 후 확인

    curl -X DELETE "localhost:9200/customer?pretty"

    ~]$ curl -X DELETE "localhost:9200/customer?pretty"

    {

      "acknowledged" : true

    }

    curl -X GET "localhost:9200/_cat/indices?v"


    ~]$ curl -X GET "localhost:9200/_cat/indices?v"

    health status index uuid pri rep docs.count docs.deleted store.size pri.store.size


    ... 인덱스 날아감.


  19. <REST Verb> /<Index>/<Type>/<ID>


    이런 패턴이 있는걸 익혀두라함.

    일단 여기까지.



+ Recent posts