我在使用 Bulk Api 寫入資料時使用了別名。我有兩個問題:
我可以在使用別名寫入資料后獲取索引名稱,這可能是回應的一部分嗎?如果我發送針對特定索引的搜索查詢而不是搜索同一別名的所有索引,是否可以提高性能?
uj5u.com熱心網友回復:
如果您使用別名進行寫入,則該別名只能指向您將在批量回應中收到的單個索引
例如,如果test_alias是test索引的別名,則在發送此批量命令時:
POST test_alias/_doc/_bulk
{"index":{}}
{"foo": "bar"}
您將收到以下回復:
{
"index" : {
"_index" : "test", <---- here is the real index name
"_type" : "_doc",
"_id" : "WtcviYABdf6lG9Jldg0d",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 0,
"_primary_term" : 1,
"status" : 201
}
}
常識認為,在單個索引上搜索總是比在跨越多個索引的別名上搜索要快,但如果別名只跨越一個索引,則沒有區別。
uj5u.com熱心網友回復:
您可以在搜索資料時提供多個索引名稱,如果您正在使用alias并且默認情況下它有多個索引,它將搜索所有索引,但如果您想根據您的幾個索引過濾它alias,這也是可能的基于基礎索引中的欄位。
您可以閱讀此博客中的基于過濾器的別名以限制對資料的訪問部分,了解如何實作它,因為它查詢的索引和資料更少,搜索性能會更好。
也alias只能有單個可寫索引,并且您也可以作為_cat/alias?vapi 回應的一部分獲得它的名稱,它顯示了別名的名稱,您可以在此處write_index查看示例輸出
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/471149.html
