728x90
필드 타입이 ip인 필드는 범위로 저장할 수 없고, 단일 ip만 저장이 가능하다.
필드 타입이 ip_range인 필드는 범위로 저장할 수 있고, 단일 ip로 저장할 수 없다.
구조는 저런 형식이다.
그리고 둘 다 데이터를 저장하는 방법도 다르다.
type이 ip인 필드는 저장할 때 "GEAR_IP":"1.1.1.1" 이런 식으로 단일 데이터로 등록해야 한다.
type이 ip_range인 필드는 저장할 때 gte와 lte를 사용해야한다.
ip 타입에 ip_range 방식으로 등록을 시도하면 에러가 발생하고, ip_range도 ip 방식으로 등록을 시도하면 에러가 발생한다.
그런데 검색하는 방식은 둘 다 같은 방식으로 사용할 수 있다.
ip 타입이어도 range를 써서 위 사진처럼 범위로 검색하면 해당되는 값을 가지고 있는 데이터들을 조회하고 ip_range는 당연히 된다.
그리고 단일 검색
이렇게 검색하면 필드 타입이 ip면 일치하는 데이터만 뽑고, ip_range면 저장된 범위 안에 포함되는 값이 검색된다.
{"INST_IP": { "gte": "1.1.1.1", "lte": "1.1.1.5" }} 로 저장돼있는걸 1.1.1.3으로 검색하면 포함되기 때문에 검색된다.
반응형
'ElasticSearch' 카테고리의 다른 글
[ElasticSearch]index 생성시 DynamicTemplate 사용 (0) | 2021.09.18 |
---|---|
[ElasticSearch] search_after 사용하기 (0) | 2021.03.30 |
[ElasticSearch] exists로 필드 존재 여부 판단하기 (0) | 2021.01.28 |
[ElasticSearch] aggs key 값 sort (0) | 2021.01.28 |
[ElasticSearch] 날짜 포맷 검색 (0) | 2020.12.30 |