es 의 date 형식

3325 단어
JSON 에는 date 형식 이 없습니다. es 의 date 는 다음 세 가지 방식 으로 표시 할 수 있 습 니 다.
① 포맷 된 date 문자열, 예 를 들 어 "2018 - 01 - 01" 또는 "2018 - 01 - 01 12: 00: 00"
② 하나의 long 형 숫자 는 1970 년 1 월 1 일 0 시 부터 지금까지 의 밀리초 수 를 나타 낸다.
③ integer 형의 숫자 는 1970 년 1 월 1 일 0 시 부터 지금까지 의 초 수 를 나타 낸다.
es 내부 에서 date 는 UTC 로 바 뀌 었 고 긴 정수 로 저장 되 었 으 며 1970 년 1 월 1 일 0 시 부터 지금까지 의 밀리초 수 를 나타 낸다.
date 형식 필드 의 조 회 는 내부 에서 log 값 에 대한 범위 조회 로 전 환 됩 니 다. 조회 결과 유형 은 문자열 입 니 다.
삽입 할 때 값 이 "2018 - 01 - 01" 이면 "2018 - 01 - 01" 로 돌아 갑 니 다.
삽입 할 때 값 이 "2018 - 01 - 01 12: 00: 00" 이면 "2018 - 01 - 01 12: 00: 00" 으로 돌아 갑 니 다.
삽입 할 때 값 이 1514736000000 이면 '1514736000000' 으로 돌아 갑 니 다.(들 어가 면 롱 형, 나 오 면 스 트 링 형)
date 형식 은 put mapping 에서 format 매개 변수 로 지정 할 수 있 습 니 다. 지정 하지 않 으 면 기본 형식 을 사용 합 니 다. "strict date optional time | epoch millis" 입 니 다.이것 은 "strict date optional time" 형식 에 맞 는 문자열 값 이나 long 형 숫자 만 받 아들 이 는 것 을 나타 낸다.
strict_date_optional_time 은 dateoptional_time 의 엄격 한 등급 은 연도, 월, 일 을 각각 4 위, 2 위, 2 위로 표시 해 야 하 며, 두 사람 이 부족 하면 1 위 는 0 으로 보충 해 야 한 다 는 것 을 엄 격 히 말한다.이 형식 에 만족 하지 않 는 날짜 문자열 은 es 에 넣 을 수 없습니다.
date-opt-time = date-element ['T' [time-element] [offset]]date-element = std-date-element | ord-date-element | week-date-elementstd-date-element = yyyy ['-' MM ['-' dd]]ord-date-element = yyyy ['-' DDD]week-date-element = xxxx '-W' ww ['-' e]time-element = HH [minute-element] | [fraction]minute-element = ':' mm [second-element] | [fraction]second-element = ':' ss [fraction]fraction = ('.' | ',') digit+
실측, "yyyy - MM - dd", "yyyyyy - MMdd", "yyyyy - MMddHmmss", "yyyy - MM - ddTHH: mm: ss", "yyyy - MM - ddTHH: mm: ss. SS", "yyy - MM - ddTHH: mm: ss. SSZ" 형식 만 지원 하고 자주 사용 하 는 "yyy - MM - dd HH: mm: ss" 형식 은 지원 하지 않 습 니 다."T" 와 "Z" 는 고정된 문자 입 니 다. "yyy - MM - ddTHH: mm: ss", "yyy - MM - ddTHH: mm: ss. SS", "yyy - MM - ddTHH: mm: ss. SSZ" 형식의 문자열 값 을 가 져 올 때 앞의 형식 으로 date 를 포맷 할 수 없 으 며, 여러 번 포맷 하고 연결 해 야 합 니 다.
epoch_millis 구속 치 는 Long. MIN 보다 커 야 합 니 다.VALUE, Long. MAX 보다 작 음VALUE
date 형식 필드 는 type 매개 변 수 를 date 로 지정 해 야 하 는 것 외 에 자주 사용 하 는 매개 변수 가 있 습 니 다. format 。이 매개 변 수 를 통 해 es 가 받 아들 일 date 형식 을 명시 적 으로 지정 할 수 있 습 니 다. 여러 개의 date 형식 이 있 으 면 | | 로 구분 해 야 합 니 다.이후 index / create / update 작업 시 순서대로 일치 합 니 다. 적당 한 형식 에 맞 으 면 작업 이 성공 하고 조회 할 때 이 문서 의 필드 도 이 형식 으로 표 시 됩 니 다.그렇지 않 으 면 조작 이 성공 하지 못 한다.... 와 같다
PUT my_index
{
  "mappings": {
    "_doc": {
      "properties": {
        "updated_date": {
          "type":   "date",
          "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
        }
      }
    }
  }
}

자바 작업 es date 형식 최 적 실천:
색인 을 만 들 때 date 형식 format 를 "yyy - MM - dd HH: mm: ss" 로 지정 합 니 다. "yyy - MM - dd HH: mm: ss" 형식의 date 문자열 만 받 아들 일 수 있 도록 제한 합 니 다.
코드 에서 Date 인 스 턴 스 나 LocalDateTime 인 스 턴 스 를 먼저 바 꿉 니 다. "yyy - MM - dd HH: mm: ss" 형식의 문자열 을 다시 저장 합 니 다. 이렇게 꺼 낼 때 도 "yyy - MM - dd HH: mm: ss" 형식 입 니 다.

좋은 웹페이지 즐겨찾기