[elasticsearch] Core Type Mapper 기본값 알아보기.
Elastic/Elasticsearch 2014. 2. 24. 16:27elasticsearch의 document type property 설정 시 core type에 대한 기본값 구성이 어떻게 되는지 살펴 보기로 하겠습니다.
우선 elasticsearch 관련 패키지는 아래와 같습니다.
package org.elasticsearch.index.mapper.core
lucene 은 아래 class를 참고하세요.
org.apache.lucene.document.FieldType
그럼 이제 부터 core type mapper 정보를 살펴 보겠습니다.
기본적으로 모든 field는 AbstractFieldMapper 를 상속 받아서 사용합니다.
[AbstractFieldMapper type]
static {
FIELD_TYPE.setIndexed(true);
FIELD_TYPE.setTokenized(true);
FIELD_TYPE.setStored(false);
FIELD_TYPE.setStoreTermVectors(false);
FIELD_TYPE.setOmitNorms(false);
FIELD_TYPE.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
FIELD_TYPE.freeze();
}
[Number type]
static {
FIELD_TYPE.setTokenized(false);
FIELD_TYPE.setOmitNorms(true);
FIELD_TYPE.setIndexOptions(IndexOptions.DOCS_ONLY);
FIELD_TYPE.setStoreTermVectors(false);
FIELD_TYPE.freeze();
}
public static final Explicit<Boolean> IGNORE_MALFORMED = new Explicit<Boolean>(false, false);
public static final Explicit<Boolean> COERCE = new Explicit<Boolean>(true, false);
[String type]
public static final String NULL_VALUE = null;
public static final int POSITION_OFFSET_GAP = 0;
public static final int IGNORE_ABOVE = -1;
[Binary type]
static {
FIELD_TYPE.setIndexed(false);
FIELD_TYPE.freeze();
}
[Boolean type]
static {
FIELD_TYPE.setOmitNorms(true);
FIELD_TYPE.setIndexOptions(IndexOptions.DOCS_ONLY);
FIELD_TYPE.setTokenized(false);
FIELD_TYPE.freeze();
}
public static final Boolean NULL_VALUE = null;
[Byte type]
static {
FIELD_TYPE.freeze();
}
public static final Byte NULL_VALUE = null;
[Completion type]
static {
FIELD_TYPE.setOmitNorms(true);
FIELD_TYPE.freeze();
}
public static final boolean DEFAULT_PRESERVE_SEPARATORS = true;
public static final boolean DEFAULT_POSITION_INCREMENTS = true;
public static final boolean DEFAULT_HAS_PAYLOADS = false;
public static final int DEFAULT_MAX_INPUT_LENGTH = 50;
[Date type]
static {
FIELD_TYPE.freeze();
}
public static final FormatDateTimeFormatter DATE_TIME_FORMATTER = Joda.forPattern("dateOptionalTime", Locale.ROOT);
public static final String NULL_VALUE = null;
public static final TimeUnit TIME_UNIT = TimeUnit.MILLISECONDS;
public static final boolean ROUND_CEIL = true;
[Double type]
static {
FIELD_TYPE.freeze();
}
public static final Double NULL_VALUE = null;
[Float type]
static {
FIELD_TYPE.freeze();
}
public static final Float NULL_VALUE = null;
[Integer type]
static {
FIELD_TYPE.freeze();
}
public static final Integer NULL_VALUE = null;
[Long type]
static {
FIELD_TYPE.freeze();
}
public static final Long NULL_VALUE = null;
[Short type]
static {
FIELD_TYPE.freeze();
}
public static final Short NULL_VALUE = null;