Elasticsearch-매핑
매핑은 색인에 저장된 문서의 개요입니다. 동적으로 추가 된 필드의 매핑을 제어하기 위해 문서 및 규칙에있는 필드의 geo_point 또는 문자열 및 형식과 같은 데이터 유형을 정의합니다.
PUT bankaccountdetails
{
"mappings":{
"properties":{
"name": { "type":"text"}, "date":{ "type":"date"},
"balance":{ "type":"double"}, "liability":{ "type":"double"}
}
}
}
위의 코드를 실행하면 아래와 같은 응답을받습니다.
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "bankaccountdetails"
}
필드 데이터 유형
Elasticsearch는 문서의 필드에 대해 다양한 데이터 유형을 지원합니다. Elasticsearch에 필드를 저장하는 데 사용되는 데이터 유형은 여기에서 자세히 설명합니다.
핵심 데이터 유형
이들은 거의 모든 시스템에서 지원되는 텍스트, 키워드, 날짜, long, double, boolean 또는 ip와 같은 기본 데이터 유형입니다.
복잡한 데이터 유형
이러한 데이터 유형은 핵심 데이터 유형의 조합입니다. 여기에는 배열, JSON 개체 및 중첩 데이터 유형이 포함됩니다. 중첩 된 데이터 유형의 예는 아래에 표시됩니다.
POST /tabletennis/_doc/1
{
"group" : "players",
"user" : [
{
"first" : "dave", "last" : "jones"
},
{
"first" : "kevin", "last" : "morris"
}
]
}
위의 코드를 실행하면 아래와 같은 응답을받습니다.
{
"_index" : "tabletennis",
"_type" : "_doc",
"_id" : "1",
_version" : 2,
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 1,
"_primary_term" : 1
}
다른 샘플 코드는 다음과 같습니다.
POST /accountdetails/_doc/1
{
"from_acc":"7056443341", "to_acc":"7032460534",
"date":"11/1/2016", "amount":10000
}
위의 코드를 실행하면 아래와 같은 응답을받습니다.
{ "_index" : "accountdetails",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 1,
"_primary_term" : 1
}
다음 명령을 사용하여 위 문서를 확인할 수 있습니다.
GET /accountdetails/_mappings?include_type_name=false
매핑 유형 제거
Elasticsearch 7.0.0 이상에서 생성 된 인덱스는 더 이상 _default_ 매핑을 허용하지 않습니다. 6.x에서 생성 된 인덱스는 Elasticsearch 6.x에서 이전처럼 계속 작동합니다. 7.0의 API에서는 유형이 더 이상 사용되지 않습니다.