ElasticSearch 자주 사용하는 작업: 색인편

6783 단어 Elasticsearch색인
[TOC]

0 설명


es5.4와 5.6을 바탕으로 두 자료를 참고하여, 와 공식 문서
https://www.elastic.co/guide/en/elasticsearch/reference/5.4/indices.html(공식 문서는 상당히 훌륭해서 놓칠 수 없다!).

1 색인 만들기

PUT my_index

Note1: 색인에는 대문자가 있을 수 없습니다.
Note2:es는 기본적으로 색인에 5개의 조각 1개의 복사본을 설정합니다.
NOte3: 인덱스 조각수는 지정된 후에 수정할 수 없지만 복사본수는 명령을 통해 수시로 수정할 수 있습니다.
settings 구성을 추가할 수 있습니다.
PUT my_index
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 1
  }
}

2 색인 복사본 업데이트

PUT my_index/_settings
{
  "number_of_replicas": 2
}

3 읽기 및 쓰기 권한 설정


권한 매개변수는 다음과 같습니다.
매개변수 설정
설명
blocks.read_only:true
true를 설정할 때, 현재 인덱스는 읽기만 허용하고, 쓰기나 업데이트는 허용하지 않습니다.
blocks.read:true
true일 때 현재 인덱스 읽기 금지
blocks.write:true
true일 때 현재 색인에 대한 쓰기 금지
예를 들어 사용자가 쓰기 작업을 금지하는 경우:
PUT my_index/_settings
{
  "blocks.write": true
}

데이터를 다시 쓸 때 403 오류가 되돌아옵니다.
쓰기 작업 재개:
PUT my_index/_settings
{
  "blocks.write": false
}

4 색인 보기

GET my_index/_mapping

반환 결과:
{
  "my_index": {
    "mappings": {
      "my_type": {
        "properties": {
          "title": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      }
    }
  }
}

여러 인덱스의 setting 정보를 동시에 보려면 다음과 같이 하십시오.
GET my_index,my_index2/_mapping

클러스터의 모든 색인에 대한 setting 정보를 보려면 다음과 같이 하십시오.
GET _all/_settings

5 색인 삭제

DELETE my_index

삭제된 색인이 존재하지 않으면 색인에 이상이 발견되지 않았습니다.

6 인덱스 열기 및 닫기


색인이 닫힌 후에는 시스템 자원을 거의 차지하지 않습니다.
POST my_index/_close

여러 인덱스 닫기:
POST my_index,my_index2/_close

게다가 ignore_unavailable 매개 변수:
POST my_index,my_index2,my_index3/_close?ignore_unavailable=true

my_index3는 존재하지 않습니다. ignore_를 추가하지 않으면unavailable 매개 변수는 인덱스를 던져 오류가 없습니다.
클러스터의 모든 인덱스를 닫으려면 다음과 같이 하십시오.
POST _all/_close

인덱스를 와일드카드 방식으로 닫고 test로 시작하는 인덱스를 닫습니다.
POST test*/_close

7 색인 복사

POST _reindex
{
  "source":{"index":"my_index"},
  "dest":{"index":"my_index3"}
}

Note1: 대상 색인은 소스 색인에서 구성 정보를 복사하지 않습니다._redinx 작업 전에 목표 인덱스의 편수, 복사본 수 등 정보를 설정해야 합니다. 설정이 없거나 my_가 존재하지 않습니다.index3, 그러면 색인을 새로 만들고 기본 설정 정보를 사용합니다.
Note2:_reindex는 실제로 색인 문서를 복사하는 데 사용되기 때문에 my_index에 문서가 없으면 my_를 새로 만들지 않습니다index3의;
소스에 type과query를 추가하여 복사된 문서를 제한할 수 있습니다.
POST _reindex
{
  "source":{
    "index":"my_index",
    "type":"my_type",
    "query":{
      "term":{"title":"elasticsearch"}
    }
  },
  "dest":{"index":"my_index3"}
}

8 수축 인덱스


공식 문서 참조:https://www.elastic.co/guide/en/elasticsearch/reference/5.4/indices-shrink-index.html, 아주 상세해요.
The shrink index API allows you to shrink an existing index into a new index with fewer primary shards. The requested number of primary shards in the target index must be a factor of the number of shards in the source index. For example an index with 8 primary shards can be shrunk into 4 , 2 or 1 primary shards or an index with 15 primary shards can be shrunk into 5 , 3 or 1 . If the number of shards in the index is a prime number it can only be shrunk into a single primary shard. Before shrinking, a (primary or replica) copy of every shard in the index must be present on the same node.
Shrinking works as follows:
  • First, it creates a new target index with the same definition as the source index, but with a smaller number of primary shards.
  • Then it hard-links segments from the source index into the target index. (If the file system doesn’t support hard-linking, then all segments are copied into the new index, which is a much more time consuming process.)
  • Finally, it recovers the target index as though it were a closed index which had just been re-opened.

  • 색인 축소 전 준비:
    PUT /my_source_index/_settings
    {
      "settings": {
        "index.routing.allocation.require._name": "shrink_node_name", 
        "index.blocks.write": true 
      }
    }

    색인 축소:
    POST my_source_index/_shrink/my_target_index

    추가 구성 정보를 추가할 수도 있습니다.
    POST my_source_index/_shrink/my_target_index
    {
      "settings": {
        "index.number_of_replicas": 1,
        "index.number_of_shards": 1, 
        "index.codec": "best_compression" 
      },
      "aliases": {
        "my_search_indices": {}
      }
    }

    잘 이해하지 못하면 위에서 제공한 공식 문서 링크를 잘 읽어야 한다.

    9 색인 별칭


    색인 별칭을 만들려면 다음과 같이 하십시오.
    POST _aliases
    {
      "actions": [
        {
          "add": {
            "index": "test1",
            "alias": "alias1"
          }
        }
      ]
    }

    색인 별칭을 제거하려면 다음과 같이 하십시오.
    POST _aliases
    {
      "actions": [
        {
          "remove": {
            "index": "test1",
            "alias": "alias1"
          }
        }
      ]
    }

    Note1: 하나의 인덱스는 여러 개의 별명을 가질 수 있고, 한 개의 별명도 여러 개의 인덱스에 대응할 수 있다(여러 번 사용하면 된다).
    Note2: 별명과 인덱스가 일대일이라면 별명 인덱스를 사용하거나 ID에 따라 문서를 조회할 수 있지만, 별명과 인덱스가 일대일이라면 별명을 사용하는 데 오류가 발생할 수 있습니다. 왜냐하면 Elasticsearch는 문서를 어떤 인덱스에 쓰거나 어떤 인덱스에서 문서를 읽는지 모르기 때문입니다.
    색인 별칭을 보려면 다음과 같이 하십시오.
    GET my_index3/_aliases
    
     :
    {
      "my_index3": {
        "aliases": {
          "alias_test": {},
          "alias_test2": {}
        }
      }
    }

    별칭에 해당하는 색인을 보려면 다음과 같이 하십시오.
    GET alias_test/_aliases
    
     :
    {
      "my_index3": {
        "aliases": {
          "alias_test": {},
          "alias_test2": {}
        }
      },
      "my_index2": {
        "aliases": {
          "alias_test": {}
        }
      },
      "my_index": {
        "aliases": {
          "alias_test": {}
        }
      }
    }

    클러스터에서 사용 가능한 모든 별칭을 보려면 다음과 같이 하십시오.
    GET _all/_aliases
     
    GET _aliases

    좋은 웹페이지 즐겨찾기