Elasticsearch에서 매핑

11787 단어
매핑(Mapping)
개념: 색인을 만들 때 필드의 유형과 관련 속성을 미리 정의할 수 있습니다.그래서 색인을 더욱 세밀하고 완벽하게 만들었다.맵을 미리 설정하지 않으면 입력한 필드 유형이 자동으로 인식됩니다.
공식 문서 (필드 데이터 유형):https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html
공식 문서(매핑 매개 변수):https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-params.html
 
매핑은 정적 및 동적 매핑으로 나뉩니다.
동적 맵: 문서에서 이전에 보지 못했던 필드를 만났을 때, 동적 맵은 자동으로 필드의 종류를 결정하고, 필드를 바꾸는 데 맵을 추가할 수 있습니다.dynamic 속성을 통해 제어합니다. 기본값은true이고 동적 추가입니다.false 새 필드 무시;strict 낯선 필드에 이상이 발생했습니다.
 
정적 매핑 설정:
curl -XPOST 'http://localhost:9200/library' -d '
{
  "settings": {
    "number_of_shards": 5,
    "number_of_replicas": 1
  },
  "mappings": {
    "books": {
      "properties": {
        "title": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "index": "not_analyzed"
        },
        "publish_date": {
          "type": "date",
          "index": "not_analyzed"
        },
        "price": {
          "type": "double"
        },
        "number": {
          "type": "integer"
        }
      }
    }
  }
}
'

동적 매핑:
동적 맵을 추가하려면 Object 형식이어야 합니다
{
    "mappings": {
        "books": {
            "dynamic": "strict",
            "properties": {
                "title": {
                    "type": "string"
                },
                "name": {
                    "type": "string",
                    "index": "not_analyzed"
                },
                "publish_date": {
                    "type": "date",
                    "index": "not_analyzed"
                },
                "price": {
                    "type": "double"
                },
                "number": {
                    "type": "object",
                    "dynamic": true
                }
            }
        }
    }
}

색인에서 매핑 정보 가져오기
curl -XGET localhost:9200/library/_mapping

 
수정 맵 업데이트
맵핑이 설정되면 기존 필드 맵을 수정할 수 없습니다.기존의 맵을 뒤집으려면 색인을 다시 만들고 맵을 다시 정의해서 이전 색인에 있는 데이터를 새로 만든 색인으로 가져와야 합니다.
  • 기존의 색인에 별명을 정의하고 기존의 색인을 이 별명으로 가리킨다
  • curl-XPUT localhost: 9200/기존 인덱스/_ 실행alias/별명 A
  • 최신 맵을 정의하는 색인을 새로 만듭니다
  • 별명을 새로운 인덱스에 가리키고 이전 인덱스의 실행을 삭제합니다
  • 운행
  • curl -XPOST 'localhost:9200/_aliases' -d '
    {
        "actions": [
            {
                "remove": {
                    "index": " ",
                    "alias": " A"
                }
            },
            {
                "add": {
                    "index": " ",
                    "alias": " A"
                }
            }
        ]
    }
    '

    이상 가동 중지 시간 없이 완료할 수 있습니다.
     
    다음으로 전송:https://www.cnblogs.com/zqwby-0708/p/7872973.html

    좋은 웹페이지 즐겨찾기