私は時系列データを持っており、2000年レコードの固定セットで時間範囲を使用してElasticsearchをクエリしたいと思います。エラスティックサーチのn番目のレコードを返す
私はこのクエリ
GET http://IP:9200/MYINDEX/_search
{
"_source": ["XXX1", "XXX2","timestamp"],
"sort" :
{ "@timestamp" : {"order" : "asc"}},
"query" : {
"range" : {
"@timestamp" : {
"gte" : "2017-02-10T10:55:31,259Z",
"lte" : "2017-02-10T10:55:32,272Z"
}
}
}
は、それだけですべての5位または10位のレコードを返すことは可能ですか? フィルタスクリプトがいくつか見つかりましたが、どれも動作していないようです。
1つのインデックスには何百万ものレコードがあるので、返される値の数を制限することが不可欠です。
EDIT:ブール値に置き換えられた濾過becasueリワーククエリ:それを行うための一つの方法は、
{
"_source":[
"XXX1",
"XXX2",
"timestamp"
],
"sort":{
"@timestamp":{
"order":"asc"
}
},
"query":{
"bool":{
"must":{
"range":{
"@timestamp":{
"gte":"2017-02-10T10:55:31,259Z",
"lte":"2017-02-10T10:55:32,272Z"
}
}
},
"filter":{
"script":{
"script":"doc['@timestamp'].value % 5 == 0"
}
}
}
}
}
に見えるんhttps://www.elastic.co/guide/en/elasticsearch/guide/current/pagination.html – Niloct