ElasticSearch 학습노트 16Range 데이터 유형 및 검색
ElasticSearch 학습노트 16Range 데이터 유형 및 검색
Range 데이터 유형
Elasticsearch는 다음과 같은 범위 데이터 유형을 지원합니다.
데이터 유형
설명
integer_range
기호 32비트 정수 범위 있음 2-32~232-1
float_range
단일 정밀도 32비트 IEEE 754 부동 소수점 범위
long_range
기호 64비트 정수 범위 2-64~264-1
double_range
이중 정밀도 64비트 IEEE 754 부동 소수점 범위
date_range
64비트 정수 범위에서 밀리초 범위의 기호 없음
ip_range
IPv4 또는 IPv6(or mixed) 주소를 지원하는 IP 범위
데이터 및 날짜
만약 우리가 회의실 관련 범위의 요구를 기록하는 색인을 가지고 있다면PUT range_index
{
"mappings": {
"metting": {
"properties": {
"expected_attendees_age_range": {
"type": "integer_range"
},
"time_frame_range": {
"type": "date_range",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}
}
예를 들어 만약에 우리가 10세에서 20세까지만 참가할 수 있도록 요구한다면 회의에 참가하는 시간은 11월 31일 낮 12시부터 새벽까지이다.PUT range_index/metting/1?refresh
{
"expected_attendees_age_range" : {
"gte" : 10,
"lte" : 20
},
"time_frame_range" : {
"gte" : "2015-10-31 12:00:00",
"lte" : "2015-11-01"
}
}
이때 또 열다섯 살짜리 학우가 달려와서 내가 참가할 만한 회의가 있는지 물었다. 우리는 어떻게 조회해야 합니까?GET range_index/metting/_search?
{
"query" : {
"term" : {
"expected_attendees_age_range" : {
"value": 12
}
}
}
}
결과는 다음과 같다.{
"took": 0,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "range_index",
"_type": "metting",
"_id": "1",
"_score": 1,
"_source": {
"expected_attendees_age_range": {
"gte": 10,
"lte": 20
},
"time_frame_range": {
"gte": "2015-10-31 12:00:00",
"lte": "2015-11-01"
}
}
}
]
}
}
이때 우리는 시간 범위를 판단해야 하는데, 회의가 전개되었습니까?GET range_index/metting/_search
{
"query" : {
"range" : {
"time_frame_range" : {
"gte" : "2015-10-31",
"lte" : "2015-11-01",
"relation" : "within"
}
}
}
}
결과는 다음과 같습니다.{
"took": 3,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "range_index",
"_type": "metting",
"_id": "1",
"_score": 1,
"_source": {
"expected_attendees_age_range": {
"gte": 10,
"lte": 20
},
"time_frame_range": {
"gte": "2015-10-31 12:00:00",
"lte": "2015-11-01"
}
}
}
]
}
}
IP 범위
지금 만약 우리가 일련의 IP 화이트리스트를 기록해야 한다면PUT ip_range_index
{
"mappings":{
"_doc":{
"properties": {
"ip_whitelist": {
"type": "ip_range"
}
}
}
}
}
가입 기록:PUT ip_range_index/_doc/2
{
"ip_whitelist" : "192.168.0.0/16"
}
IP가 화이트리스트에 있는지 확인하기GET ip_range_index/_doc/_search
{
"query" : {
"term" : {
"ip_whitelist" : {
"value": "192.168.0.12"
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
만약 우리가 회의실 관련 범위의 요구를 기록하는 색인을 가지고 있다면
PUT range_index
{
"mappings": {
"metting": {
"properties": {
"expected_attendees_age_range": {
"type": "integer_range"
},
"time_frame_range": {
"type": "date_range",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}
}
예를 들어 만약에 우리가 10세에서 20세까지만 참가할 수 있도록 요구한다면 회의에 참가하는 시간은 11월 31일 낮 12시부터 새벽까지이다.
PUT range_index/metting/1?refresh
{
"expected_attendees_age_range" : {
"gte" : 10,
"lte" : 20
},
"time_frame_range" : {
"gte" : "2015-10-31 12:00:00",
"lte" : "2015-11-01"
}
}
이때 또 열다섯 살짜리 학우가 달려와서 내가 참가할 만한 회의가 있는지 물었다. 우리는 어떻게 조회해야 합니까?
GET range_index/metting/_search?
{
"query" : {
"term" : {
"expected_attendees_age_range" : {
"value": 12
}
}
}
}
결과는 다음과 같다.
{
"took": 0,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "range_index",
"_type": "metting",
"_id": "1",
"_score": 1,
"_source": {
"expected_attendees_age_range": {
"gte": 10,
"lte": 20
},
"time_frame_range": {
"gte": "2015-10-31 12:00:00",
"lte": "2015-11-01"
}
}
}
]
}
}
이때 우리는 시간 범위를 판단해야 하는데, 회의가 전개되었습니까?
GET range_index/metting/_search
{
"query" : {
"range" : {
"time_frame_range" : {
"gte" : "2015-10-31",
"lte" : "2015-11-01",
"relation" : "within"
}
}
}
}
결과는 다음과 같습니다.
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "range_index",
"_type": "metting",
"_id": "1",
"_score": 1,
"_source": {
"expected_attendees_age_range": {
"gte": 10,
"lte": 20
},
"time_frame_range": {
"gte": "2015-10-31 12:00:00",
"lte": "2015-11-01"
}
}
}
]
}
}
IP 범위
지금 만약 우리가 일련의 IP 화이트리스트를 기록해야 한다면PUT ip_range_index
{
"mappings":{
"_doc":{
"properties": {
"ip_whitelist": {
"type": "ip_range"
}
}
}
}
}
가입 기록:PUT ip_range_index/_doc/2
{
"ip_whitelist" : "192.168.0.0/16"
}
IP가 화이트리스트에 있는지 확인하기GET ip_range_index/_doc/_search
{
"query" : {
"term" : {
"ip_whitelist" : {
"value": "192.168.0.12"
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
PUT ip_range_index
{
"mappings":{
"_doc":{
"properties": {
"ip_whitelist": {
"type": "ip_range"
}
}
}
}
}
PUT ip_range_index/_doc/2
{
"ip_whitelist" : "192.168.0.0/16"
}
GET ip_range_index/_doc/_search
{
"query" : {
"term" : {
"ip_whitelist" : {
"value": "192.168.0.12"
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.