Leleka
(Oleksiy)
December 3, 2020, 1:22pm
1
У меня есть такая структура БД в эластике:
[
{
"Number": 250,
"Date": 1606996816
},
{
"Number": 251,
"Date": 1606997816
},
{
"Number": 251,
"Date": 1606997816
},
{
"Number": 251,
"Date": 1606998816
},
{
"Number": 251,
"Date": 1606999816
},
{
"Number": 251,
"Date": 1606999816
}
]
возможно ли найти все записи по номеру "Number": 251 с максимальным значением "Date"
[
{
"Number": 251,
"Date": 1606999816
},
{
"Number": 251,
"Date": 1606999816
}
]
Leleka
(Oleksiy)
December 3, 2020, 5:29pm
3
Это для поиска в одном документе, а мне нужно из нескольких документов найти все что равны максимальному
сейчас я делаю так:
_search?size=1&pretty=true
{
"query": {
"bool": {
"must": {
"term": {
"Number": 251
}
}
}
},
"sort": {
"Date": "desc"
}
}
Потом беру значение Date и подставляю в новый запрос
_search?size=1000&pretty=true
{
"query": {
"bool": {
"must": [
{
"term": {
"Number": 251
}
},
{
"term": {
"Date": Date
}
}
]
}
}
}
А возможно ли это сделать одним запросом?
Igor_Motov
(Igor Motov)
December 3, 2020, 6:19pm
4
Что из себя представляет один документ?
Leleka
(Oleksiy)
December 3, 2020, 6:35pm
5
Так выглядит ответ с БД:
{
"took": 0,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 1.0,
"hits": [
{
"_index": "history",
"_type": "_doc",
"_id": "dtmlKHYBDbM9kUrCpwpX",
"_score": 1.0,
"_source": {
"Card_Number": 251,
"End_Date": 1606999743
}
},
{
"_index": "history",
"_type": "_doc",
"_id": "d9mlKHYBDbM9kUrC7Qpe",
"_score": 1.0,
"_source": {
"Card_Number": 251,
"Status_Date": 1606999743
}
}
]
}
}
Igor_Motov
(Igor Motov)
December 3, 2020, 6:41pm
6
DELETE test
PUT test
{
"mappings": {
"properties": {
"Number": {
"type": "integer"
},
"Date": {
"type": "date"
}
}
}
}
POST test/_bulk
{"index":{}}
{"Number":250,"Date":1606996816}
{"index":{}}
{"Number":251,"Date":1606997816}
{"index":{}}
{"Number":251,"Date":1606997816}
{"index":{}}
{"Number":251,"Date":1606998816}
{"index":{}}
{"Number":251,"Date":1606999816}
{"index":{}}
{"Number":251,"Date":1606999816}
GET test/_search
{
"size": 0,
"query": {
"term": {
"Number": {
"value": 251
}
}
},
"aggs": {
"by_date": {
"terms": {
"field": "Date",
"size": 1
},
"aggs": {
"top_docs": {
"top_hits": {
"size": 10
}
}
}
}
}
}
system
(system)
Closed
December 31, 2020, 6:41pm
7
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.