У меня есть индекс эластичного поиска, который называется 'posts'.
http://127.0.0.1:9200/posts/doc/_count
возвращает {"count":240000,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0}}
.
Я пытаюсь найти поле с самым низким идентификатором в типе 'doc'.Погуглив, я думаю, что инструмент, который мне нужен, - это агрегация.
В основном скопировав и вставив непосредственно из официальной документации , я пришел к этому:
POST /posts/_search?size=0
{
"aggs" : {
"min_id" : { "min" : { "field" : "id" } }
}
}
Используя curl -X POST "localhost:9200/posts/_search?size=0" -H 'Content-Type: application/json' -d'{"aggs" : {"min_id" : { "min" : { "field" : "id" } }}}'
для отправки запроса.В качестве результатов я получаю следующее:
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 240000,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"min_id" : {
"value" : null
}
}
}
Я считаю, что значение min_id
не должно быть нулевым.
Когда я ищу размер = 1, я получаю следующее:
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 240000,
"max_score" : 1.0,
"hits" : [
{
"_index" : "posts",
"_type" : "doc",
"_id" : "1733768",
"_score" : 1.0,
"_source" : {
"doc" : {
"id" : 1733768,
"description" : "",
"ext" : "png",
"tags" : [],
...
}
}
}
]
},
"aggregations" : {
"min_id" : {
"value" : null
}
}
}
Что я делаю не так?