gpt4 book ai didi

elasticsearch - 在ElasticSearch 7.6中搜索别名时,如何仅从一个索引读取并将另一个索引设置为write?

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

我知道可以在别名中定义两个索引,其中一个索引的is_write_index设置为true,而另一个索引的false设置-

POST /_aliases
{
"actions" : [
{
"add" : {
"index" : "test_index_1",
"alias" : "my_alias",
"is_write_index": true
}
}
]
}
POST /_aliases
{
"actions" : [
{
"add" : {
"index" : "test_index_2",
"alias" : "my_alias",
"is_write_index": false
}
}
]
}

如您所见,我定义了两个索引 test_index_1test_index_2,其中第一个是写索引,而第二个则不是。

现在,我希望能够以这样的方式查询 my_alias:仅在将 test_index_2设置为 is_write_indexfalse上进行搜索,而我将数据写入 test_index_1而不是从两个索引中读取,这是默认行为。意思是,我不希望搜索结果来自将 is_write_index设置为 true的索引。

这可能吗?我尝试在写索引上将 index.blocks.read设置为 true,但是随后对别名的搜索查询会失败,并出现异常。相反,我希望仅从将 is_write_index设置为 false的索引中读取别名查询。

我该如何实现?

最佳答案

您以错误的方式使用此功能。如果使用别名进行搜索,它将始终尝试读取所有基础索引。 is_write_index 作为支持滚动和索引模式的功能提供,其中写入发生在1个索引上,但读取发生在具有相同别名或索引模式的所有索引上。

如果您打算将数据加载到一个索引中,但又允许应用程序继续从旧索引中读取数据,那么在进行数据加载时,您应该使用2个单独的别名-一个用于读取,另一个用于写入,并使用一种策略来交换别名数据加载完成后,指向索引。

关于elasticsearch - 在ElasticSearch 7.6中搜索别名时,如何仅从一个索引读取并将另一个索引设置为write?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61387624/

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