인덱스에서 최대 ElasticSearch 문서 수를 제한하는 방법은 무엇입니까?

No1Lives4Ever

Elastic Search (버전 7.x) 클러스터를 설치하고 새 인덱스를 생성했습니다. 이 색인의 최대 문서 수를 제한하고 싶습니다. 10,000 개의 문서가 맨 위에 있다고 가정 해 보겠습니다.

순진한 해결책은 새 문서를 삽입하기 전에 문서 수를 쿼리하는 것입니다. 그러나이 방법은 정확하지 않을 수 있으며 성능도 좋지 않습니다 (2 개의 요청 ...).

올바른 방법?

루 E

모범 사례는 기본 라이선스에 있고 Elastic v7.3 +에서 기본적으로 활성화 된 Index Life Management 를 사용 하는 것입니다.

문서 수에 롤오버 작업설정할 수 있습니다 (최대 문서 5 개 넣음).

PUT _ilm/policy/my_policy
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_docs": 5
          }
        }
      }
    }
  }
}

이제 정책으로 템플릿을 만듭니다 my_policy.

PUT _template/my_template
{
  "index_patterns": [
    "my-index*"
  ],
  "settings": {
    "index.blocks.read_only" : true,
    "index.lifecycle.name": "my_policy",
    "index.lifecycle.rollover_alias": "my-index"
  }
}

"index.blocks.read_only" : true롤오버가 적용될 때 read_only 매개 변수로 새 인덱스가 생성되기 때문에 설정을 넣었습니다 .

이제 색인을 만들 수 있습니다.

PUT my-index-000001
{
  "settings": {
    "index.blocks.read_only": false
  },
  "aliases": {
    "my-index": {
      "is_write_index": true
    }
  }
}

그게 다야! 5 개의 문서 후에는 새로운 읽기 전용 색인이 생성되고 별칭은이 색인에 기록됩니다.

별칭을 사용하여 일부 새 문서를 색인하여 테스트 할 수 있습니다.

PUT my-index/_doc/1
{
  "field" : "value"
}

또한 기본적으로 ilm 정책은 10 분마다 적용되며 다음을 사용하여 테스트하기 위해 변경할 수 있습니다.

PUT /_cluster/settings
{
  "persistent": {
    "indices.lifecycle.poll_interval": "5s"
  }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관