, , , .
** ES 5 **
:
PUT /meetings
{
"mappings": {
"meeting": {
"properties": {
"groupId": {
"type": "integer"
},
"dayOfWeek": {
"type": "integer"
},
"hourRange": {
"type": "integer_range"
}
}
}
}
}
:
POST /meetings/meeting/_bulk
{"index": {}}
{"groupId": 1, "dayOfWeek": 0, "hourRange": {"gte": 9, "lte": 11}}
{"index": {}}
{"groupId": 2, "dayOfWeek": 0, "hourRange": {"gte": 10, "lte": 11}}
{"index": {}}
{"groupId": 2, "dayOfWeek": 1, "hourRange": {"gte": 8, "lte": 10}}
{"index": {}}
{"groupId": 3, "dayOfWeek": 0, "hourRange": {"gte": 10, "lte": 11}}
{"index": {}}
{"groupId": 3, "dayOfWeek": 2, "hourRange": {"gte": 12, "lte": 13}}
, :
POST /meetings/meeting/_search
{
"query": {
"bool": {
"should": [
{
"bool": {
"must": [
{
"term": {
"dayOfWeek": 0
}
},
{
"range": {
"hourRange": {
"gte": "8",
"lte": "11",
"relation": "within"
}
}
}
]
}
},
{
"bool": {
"must": [
{
"term": {
"dayOfWeek": 1
}
},
{
"range": {
"hourRange": {
"gte": "12",
"lte": "14",
"relation": "within"
}
}
}
]
}
},
{
"bool": {
"must": [
{
"term": {
"dayOfWeek": 2
}
},
{
"range": {
"hourRange": {
"gte": "6",
"lte": "17",
"relation": "within"
}
}
}
]
}
}
]
}
}
}
** ES < 5 **
PUT /meetings
{
"mappings": {
"meeting": {
"properties": {
"groupId": {
"type": "integer"
},
"dayOfWeek": {
"type": "integer"
},
"start": {
"type": "integer"
},
"end": {
"type": "integer"
}
}
}
}
}
:
POST /meetings/meeting/_bulk
{"index": {}}
{"groupId": 1, "dayOfWeek": 0, "start": 9, "end": 11}
{"index": {}}
{"groupId": 2, "dayOfWeek": 0, "start": 10, "end": 11}
{"index": {}}
{"groupId": 2, "dayOfWeek": 1, "start": 8, "end": 10}
{"index": {}}
{"groupId": 3, "dayOfWeek": 0, "start": 10, "end": 11}
{"index": {}}
{"groupId": 3, "dayOfWeek": 2, "start": 12, "end": 13}
, :
POST /meetings/meeting/_search
{
"query": {
"bool": {
"should": [
{
"bool": {
"must": [
{
"term": {
"dayOfWeek": 0
}
},
{
"range": {
"start": {
"gte": "8"
}
}
},
{
"range": {
"end": {
"lte": "11"
}
}
}
]
}
},
{
"bool": {
"must": [
{
"term": {
"dayOfWeek": 1
}
},
{
"range": {
"start": {
"gte": "12"
}
}
},
{
"range": {
"end": {
"lte": "14"
}
}
}
]
}
},
{
"bool": {
"must": [
{
"term": {
"dayOfWeek": 2
}
},
{
"range": {
"start": {
"gte": "6"
}
}
},
{
"range": {
"end": {
"lte": "17"
}
}
}
]
}
}
]
}
}
}