ElasticSearch.Net-删除批量查询中的索引

ElasticSearch.Net-删除批量查询中的索引,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我正在实现一个重新索引操作,它从某个集合中获取所有元素,并将它们添加到索引中,替换索引的旧内容(如果索引为空,则替换创建的索引)。为了实现这一点,我使用Elasticsearch批量查询,我使用Elasticsearch.net批量函数调用该查询 我已经成功地向索引中添加了元素/创建了包含所有元素的新索引,但我似乎无法找到如何在批量查询中删除整个索引,以确保其中没有遗留的旧内容项。我可以通过另一个调用来完成,但这意味着如果我删除了索引,然后在重新创建它时出现故障,我将没有索引,而我猜,在批量查询

我正在实现一个重新索引操作,它从某个集合中获取所有元素,并将它们添加到索引中,替换索引的旧内容(如果索引为空,则替换创建的索引)。为了实现这一点,我使用Elasticsearch批量查询,我使用Elasticsearch.net批量函数调用该查询

我已经成功地向索引中添加了元素/创建了包含所有元素的新索引,但我似乎无法找到如何在批量查询中删除整个索引,以确保其中没有遗留的旧内容项。我可以通过另一个调用来完成,但这意味着如果我删除了索引,然后在重新创建它时出现故障,我将没有索引,而我猜,在批量查询中,如果出现故障,索引将不会被删除

这就是我现在为批量索引所做的工作(它是有效的):

或:


在foreach之前,但没有用。有没有一种方法可以在批量添加元素之前删除索引?

您不能在批量操作之前删除并创建索引吗?正如我在问题中提到的,我希望将其批量删除,这样,如果重新索引的任何元素失败,旧索引仍然不会受到损坏,而不是什么都没有。至少我认为这样会有效。所以我认为这个方法应该对你们有帮助。听@Rob。别名是这个特定场景的前进方向!好的,谢谢你们,接下来我们将朝这个方向发展。你们不能在批量操作之前删除并创建索引吗?正如我在问题中提到的,我希望将其批量处理,这样,如果重新索引的任何元素失败,我仍然可以使旧索引不受损坏,而不是什么都没有。至少我认为这样会有效。所以我认为这个方法应该对你们有帮助。听@Rob。别名是这个特定场景的前进方向!好的,谢谢你们,那就朝那个方向走吧。
foreach (var element in elements)
{
   sb.AppendLine("{ \"index\" : { \"_id\" : \"" + element.Id + "\" } }");
   sb.AppendLine(JsonConvert.SerializeObject(element.As<ElementDTO>(), new JsonSerializerSettings() { Formatting = Newtonsoft.Json.Formatting.None }));                        
}

var response = client.Bulk("elements", "element", sb.ToString());
sb.AppendLine("{ \"delete\" : { \"_index\" : \"elements\" } }");
sb.AppendLine("{ \"delete\" }");