У меня есть «index_a» в удаленном кластере эластичного поиска, который выглядит следующим образом:
{
_index: "index_a",
_type: "_doc",
_id: "1",
_score: 1,
_source: {
customer_id: "1234",
customer_name: "spider",
message: "does what ever"
}
},
{
_index: "index_a",
_type: "_doc",
_id: "2",
_score: 1,
_source: {
customer_id: "3333",
customer_name: "pig",
message: "spider-pid does"
}
}
И у меня также есть «index_a» (да, это то же имя!) В текущем кластере эластичного поиска, который я Я выполняю _reindex для, который выглядит следующим образом:
{
_index: "index_a",
_type: "_doc",
_id: "2",
_score: 1,
_source: {
customer_id: "3333",
customer_name: "pig",
message: "spider-pid does"
}
},
{
_index: "index_a",
_type: "_doc",
_id: "3",
_score: 1,
_source: {
customer_id: "9876",
customer_name: "coronavirus",
message: "stay safe and at home"
}
}
, как вы можете видеть, есть документы дублирования из первого "index_a" выше, но есть также новые данные, которые я хочу сохранить!
В конце концов, что я хочу получить, в моем текущем кластере эластичного поиска это index_b:
{
_index: "index_b",
_type: "_doc",
_id: "1",
_score: 1,
_source: {
customer_id: "1234",
customer_name: "spider",
message: "does what ever"
}
},
{
_index: "index_b",
_type: "_doc",
_id: "2",
_score: 1,
_source: {
customer_id: "3333",
customer_name: "pig",
message: "spider-pid does"
}
},
{
_index: "index_b",
_type: "_doc",
_id: "3",
_score: 1,
_source: {
customer_id: "9876",
customer_name: "coronavirus",
message: "stay safe and at home"
}
}
Так что в принципе я знаю факт , что я мог бы достичь этого результата в двух различных запросах _reindex 1-й _reindex будет от удаленного кластера index_a до текущего кластера эластичного поиска index_b. И второй _reindex будет от текущего кластера эластичного поиска index_a до текущего кластера index_b. но выполнение этих двух запросов _reindex ОЧЕНЬ расточительно с точки зрения больших данных, потому что запрос в основном выполняется по каждому из них, делает c -id-один за другим и записывает / переопределяет его.
при попытке сделать это по одному запросу _reindex, я пробовал это:
POST http://current_cluster / _ reindex
{
"source": {
"remote": {
"host": "http://remote_cluster/"
},
"index": ["index_a-from-remote", "index_a-of-current"] //renamed them to be more understood for you
},
"dest": {
"index": "index_b"
}
}
, и ответ указывает, что в удаленном кластере нет «index_a-of-current», и это имеет смысл: это произошло потому, что этот тип запроса _reindex создан для получения индексов только от удаленного кластера эластичного поиска.
, поэтому мой вопрос:
есть ли способ выполнить один запрос _reindex, который будет принимать и «index_a» из удаленного кластера, а также «index_a» текущего кластера, и будет переиндексировать их обоих в "index_b" в текущем кластере?
Я был бы рад, если бы кто-нибудь из облаков пролил свет на этот вопрос, поскольку я попробовал кучу других вещей в запросе и прочитал Reindex API документации и пока не нашел ответа. TNX за любую помощь!