ElasticSearch

[ElasticSearch] ip type과, ip_range type 필드

SongMinu 2021. 1. 28. 11:17
728x90

필드 타입이 ip인 필드는 범위로 저장할 수 없고, 단일 ip만 저장이 가능하다.

필드 타입이 ip_range인 필드는 범위로 저장할 수 있고, 단일 ip로 저장할 수 없다.

ip타입과 ip_range 타입 필드

구조는 저런 형식이다.

 

그리고 둘 다 데이터를 저장하는 방법도 다르다.

ip type 등록

type이 ip인 필드는 저장할 때 "GEAR_IP":"1.1.1.1" 이런 식으로 단일 데이터로 등록해야 한다.

 

 

type이 ip_range인 필드는 저장할 때 gte와 lte를 사용해야한다.

 

 

 

ip 타입에 ip_range 방식으로 등록을 시도하면 에러가 발생하고,  ip_range도 ip 방식으로 등록을 시도하면 에러가 발생한다.

ip_range 타입에 단일로 등록 시도시 발생하는 에러

그런데 검색하는 방식은 둘 다 같은 방식으로 사용할 수 있다.

 

ip 타입이어도 range를 써서 위 사진처럼 범위로 검색하면 해당되는 값을 가지고 있는 데이터들을 조회하고 ip_range는 당연히 된다.

그리고 단일 검색

이렇게 검색하면 필드 타입이 ip면 일치하는 데이터만 뽑고, ip_range면 저장된 범위 안에 포함되는 값이 검색된다.

{"INST_IP": { "gte": "1.1.1.1", "lte": "1.1.1.5" }} 로 저장돼있는걸 1.1.1.3으로 검색하면 포함되기 때문에 검색된다.

반응형