gpt4 book ai didi

elasticsearch - Elasticsearch在查询中使用别名时查找哪些索引包含命中

转载 作者:行者123 更新时间:2023-12-03 00:37:10 24 4
gpt4 key购买 nike

我的集群中有数千个按天(基于时间)的索引。当查询使用contain hits时,是否可以在ES Server端监视或查找索引alias的方法。例如。考虑以下我的客户触发的查询:

GET index_alias/_search?q=Product_Serial_Num:ABCD
别名 index_alias映射到ES 6.8.6集群中的所有 day-wise indices,它们总计为 1200。原因是查询用于获取该 Product_Serial_Num的历史记录。因此,不可能事先知道哪个日指数将具有数据。这就是 index_alias映射到 all indices的原因。当客户触发以上查询时,我想在ES Server端对其进行监视,并找出当查询命中它们时,哪些 indices实际返回了数据。有没有一种方法可以在不修改客户端的情况下确定这一点?
这样做的目的是找出“哪些索引”受到的影响最大,例如 last-n-days (30, 60, 90),然后相应地应用热-热架构,例如在热节点上具有最近60天的索引,而在热节点上建立索引。
或者,如果有更好的方法来确定,请分享。
谢谢。

最佳答案

您应该已经在每个匹配的元数据中获取了有关索引的信息。查看下面的示例响应:

{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 10000,
"relation" : "gte"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "test_index_01",
"_type" : "_doc",
"_id" : "doc_id_1",
"_score" : 1.0
},
{
"_index" : "test_index_01",
"_type" : "_doc",
"_id" : "doc_id_5",
"_score" : 1.0
}
]
}
}
在上面的响应中,您可以看到每个匹配都包含meta字段,并且其中一个字段就是 _index。该字段的值是找到文档的索引的实际名称(不是别名)。您可以根据需要使用此信息。
查找别名当前指向哪个索引的另一种方法可以通过使用GET别名api来完成。
GET _alias/test_alias
样本回复:
{
"test_index_01" : {
"aliases" : {
"test_alias" : { }
}
}
}
上面的响应提供了有关 test_alias的信息。

关于elasticsearch - Elasticsearch在查询中使用别名时查找哪些索引包含命中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63877259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com