2017-02-10 2 views
0

나는 elasticsearch 문서를 읽고 제목 "무엇 입력입니다"에서 Index vs. Type에 기록 된 흥미로운 라인을, 발견 된 두 번째 점은 말한다 : 하나 개의 형태로 존재인덱스에서 ElasticSearch 유형의 메모리 할당은 어떻게됩니까?

필드는 유형의 문서에 대한 자원을 소모합니다 이 필드는 존재하지 않습니다.

실제로 의미하는 것을 이해할 수 없습니다. 내가이 두 가지 유형을 만들 경우 TI 말 뜻 :

Type 1: [a:string, b:text, c:keyword] Type 2: [c: keyword, d:string] 

그럼 난 2 형의 문서를 저장하고 경우에도 ElasticSearch 모든 5 개 필드에 공간이 걸릴까요? 나는 그것이 사실이라고 생각하지 않지만, 문서에 쓰여진 것과 같은 것처럼 보입니다.

답변

0

Elasticsearch는 "유형"개념이없는 Lucene 위에 구축됩니다. Lucene을 사용하면 색인이 생기고 문서로 채울 수 있습니다. 유형은 Elasticsearch 레이어에만있는 추상화입니다. , "C" "바"

{ "A": "푸", "B"를 입력 한 다음 1 문서를 작성할 때

는 그래서 루씬에서이 문서를 작성하는 것과 같다 "는 foobar" "D"

{ 의 "A": 널 }는

또는 대

는 2 입력 기록 NULL, 의 "B"NULL, "C"를 " Foobar ", "d ":"Foobaz z " }

한 유형의 문서를 작성할 때 다른 유형의 입력란을 비워 두어도이 빈 칸은 여전히 ​​Lucene의 자원을 소비 할 수 있습니다. 예를 들어 norms 및 doc_values는 빈 필드에서 계속 계산됩니다 (필드 유형에 따라 기본적으로 사용됨).

독서 대상 : https://www.elastic.co/blog/great-mapping-refactoring

관련 문제