ES v6.0에서 ES 매핑 유형이 삭제된 이유는 무엇입니까?

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 엔진은 같은 유형을 따르지 않기 때문이다.다음과 같은 이유 때문입니다.
  • 관계 데이터베이스에서 표는 서로 독립적이고 열의 이름은 같아도 상관없다.ES의 매핑 유형의 필드와 달리 이름이 같은 필드는 내부에서 같은 Lucene 엔진 필드로 간주됩니다.
  • 상기 예시에서 사용자 유형과 사이트 유형의 필드\uid는 같은 필드에 저장되고 완전히 같은 유형을 가져야 하기 때문에 낙담과 혼동을 초래할 수 있다.
  • 공공 필드에 필드가 없는 실체를 저장하면 Lucene이 문서를 효과적으로 압축하는 것을 막을 수 있다.
  • 맵 유형의 대안


    비록 이미 결정을 내렸지만, 우리는 여전히 서로 다른 유형의 데이터를 분리해야 한다.현재 첫 번째 선택은 자신의 색인에서 문서를 분리하는 것이다. 이것은 두 가지 장점이 있다.
  • 데이터는 모든 인덱스에서 흔히 볼 수 있기 때문에 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 7.x
  • URL의 유형 매개변수는 선택 사항입니다.예를 들어 색인 문서에는 더 이상 문서 유형이 필요하지 않습니다.
  • \u default\uMapping 유형이 삭제되었습니다.
  • Elasticsearch 8.x
  • URL에서 유형 매개변수는 더 이상 지원되지 않습니다.
  • include\u type\uname 매개 변수는 기본적으로false입니다.
  • Elasticsearch 9.x
  • include\u type\u name 매개 변수를 삭제합니다.
  • 결론


    이 과정에서, 우리는 왜 Elasticsearch 맵 형식이 삭제되었는지, 그리고 미래의 버전에서는 전혀 지원되지 않는지 이해했다.