每天,我都会将数据(time_series)推送到Elasticsearch。我创建了一个索引模式,我的索引名为:myindex_*,其中 * 是今天的日期(已经设置了索引模式)。因此,一周后,我有:一个月一个月一个月一个月...
假设我的指数是产品价格的指数,那么在每个myindex_*
中,我得到:
myindex_2022-06-26 is including many products prices like this:
{
"reference_code": "123456789",
"price": 10.00
},
...
myindex_2022-06-27:
{
"reference_code": "123456789",
"price": 12.00
},
我使用这个查询来获得参考代码和相应的价格。
const data = await elasticClient.search({
index: myindex_2022-06-27,
body: {
query: {
match: {
"reference_code": "123456789"
}
}
}
});
但是,我想查询,如果在日期2022-06-27的索引中没有数据,那么它会检查上一个索引2022-06-26,依此类推(直到例如10 x)。
不确定,但当我用myindex_* 替换myindex_2022-06-27时,它似乎正在这样做(不确定这是默认行为)。
问题是,当我使用这种方法时,我从其他指数中获得价格,但它似乎使用最旧的一个。我想获得最新的一个,因此相反的方式。
我该如何继续?
1条答案
按热度按时间z2acfund1#
如果您使用索引通配符进行查询,它应该返回一个文档列表,其中每个文档都将包含一些 meta字段,如
_index
和_id
。您可以按
_index
排序,使ElasticSearch返回列表中位置[0]处的最新文档。