ES v6.0에서 ES 매핑 유형이 삭제된 이유는 무엇입니까?
2022-06-03 last update
6 minutes reading Elastic Search맵 유형은 무엇입니까?
Elasticsearch 에서는 각 문서가 하나의 색인과 유형에 속합니다.관계 데이터베이스에 비해 색인은 데이터베이스로 볼 수 있고 유형은 표로 볼 수 있다.매핑 유형은 객체와 동일한 색인에 속하는 다른 매핑 유형의 다른 객체에 대한 논리적 파티션입니다.
매핑 유형마다 필드가 있습니다.예를 들어, 유형의 사용자는 다음과 같은 필드를 가질 수 있습니다.
{
"id" : 123,
"name" : "Shubham",
"website" : 1
}
같은 색인 사이트의 다른 맵 유형에는 사용자 유형과 완전히 다른 다음 필드가 있을 수 있습니다.{
"id" : 1,
"title" : "our",
"link" : "https://.com/"
}
색인에서 문서를 검색할 때 단일 필드를 다음 필드로 지정하여 검색을 단일 문서로 제한할 수 있습니다.GET idx_name/user,website/_search
{
"query": {
"match": {
"id": 1
}
}
}
문서의\u type 필드와\uid를 조합하여\uid 필드를 생성하기 때문에 같은\uid를 가진 문서는 단일 인덱스에 존재할 수 있습니다.읽기Elasticsearch Tutorial for Beginners는 Elasticsearch 구조를 깊이 있게 이해하고 Install ElasticSearch on Ubuntu부터 사용합니다.
맵 유형을 삭제하는 이유는 무엇입니까?
우리가 인덱스와 유형이 관계 데이터베이스에 있는 데이터베이스와 표와 어떻게 유사한지 설명할 때 말한 바와 같이, Elasticsearch팀의 생각은 같지만, 사실은 그렇지 않다. 왜냐하면 Lucene 엔진은 같은 유형을 따르지 않기 때문이다.다음과 같은 이유 때문입니다.
맵 유형의 대안
비록 이미 결정을 내렸지만, 우리는 여전히 서로 다른 유형의 데이터를 분리해야 한다.현재 첫 번째 선택은 자신의 색인에서 문서를 분리하는 것이다. 이것은 두 가지 장점이 있다.
PUT db_name/doc/123
{
"type": "user",
"id": 123,
"name": "Shubham",
"website": 1
}
PUT db_name/doc/website
{
"type": "website",
"id": 1,
"title": "our",
"link": "https://.com/"
}
만약 당신이 완전한 사용자 정의 해결 방안을 찾고 있다면, 이것은 매우 좋은 용법이다.매핑 유형을 제거하는 데 사용되는 Schedual
매핑 유형 삭제는 매우 큰 변화이므로 ES 팀은 이 과정을 천천히 진행하고 있습니다.다음은 출시 일정extracted from elastic.co입니다.
결론
이 과정에서, 우리는 왜 Elasticsearch 맵 형식이 삭제되었는지, 그리고 미래의 버전에서는 전혀 지원되지 않는지 이해했다.