2017-04-20 2 views
0

인덱스에 유형이 하나 뿐인 경우 스파 스 필드가 적용되는 정도는 어느 정도입니까? 나는 많은 수의 small-ish 문서를 가지고 같은 유형의 모든 필드와 다수의 필드를 가진 인덱스를 만들 수 있습니다. 모든 문서가 동일한 유형이라고 생각되면 일부 필드 만 채워집니다. 이 게시물에 따르면 게시가 드문 경우에 대한 우려가 있습니다. 이것은 색인이 많은 유형 인 경우에만 문제일지도 모르지만 제안하는 것을 보인다. 색인에 하나의 유형 만 있으면 어떻게 될까요?스파 스 필드가있는 단일 _type은 여러 유형 (ElasticSearch)의 색인에 동일한 효과가 있습니까?

한 유형에 존재하는 필드는이 필드가없는 유형의 유형의 문서에 대한 리소스도 소비합니다. Lucene 색인과 관련된 일반적인 : 희소성이 싫습니다. 스파 스 게시 연속 일치 사이의 높은 델타 때문에 목록을 효율적으로 압축 할 수 없습니다. 그리고 문제는 문서 값으로 더욱 악화됩니다. 속도의 이유로 인해 문서 값은 모든 문서에 대해 고정 된 디스크 공간 인 을 보유하므로 값을 효율적으로 처리 할 수 ​​있습니다. 이 은 Lucene이 주어진 숫자 필드의 모든 값을 저장하는 데 1 바이트가 필요하다고 설정하면이 필드에 값이없는 문서의 경우에도 1 바이트를 소비합니다.

참조 : Index-vs-Types

답변

0

희소성이 엄격하게 많은 종류의 관련이 없습니다. 블로그 게시물 (유형과 색인)의 맥락에서 여러 색인 대신에 여러 유형을 사용하는 것은 사실 희박한 필드가있는 단점을 가지고 있습니다. 각 유형에 하나의 필드가있는 색인에서 3 가지 유형을 정의하는 경우 type1field1 , field2 유형이 type2이고 field3 유형이 type3 인 모든 문서는이 색인에 추가됩니다. 유형이 무엇이든 상관없이 에는 세 개의 필드 (Lucene 수준)이 모두 포함됩니다. 그러나 모든 유형에 대해서만 해당 유형에 속하는 필드 만 가치가 있습니다. 즉, 색인의 각 문서는 1/3으로 채워집니다.

Elasticsearch가 이름이 같지만 유형이 다른 필드의 필드 유형이 동일해야하는 이유이기도합니다. Lucene 레벨에서 이것은 해당 색인의 모든 문서에 대해 하나의 필드이기 때문에 상관 없습니다 유형.

하나의 색인에 하나의 유형이 있고 3 개의 필드가있는 문서에서도 마찬가지입니다. 해당 필드에 거의 값이있는 경우 (예 : 경우와 같이) 여전히 희소성이 발생합니다.