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

时间:2015-11-18 14:59:03

标签: c# elasticsearch elasticsearch-net

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

我成功地为索引添加元素/使用所有元素创建新索引,但我似乎无法找到如何在批量查询中删除整个索引,以便确保其中没有旧内容项。我可以用另一个调用来完成它,但是这意味着如果我删除索引然后重新创建它就失败了,我认为没有索引,而我猜测,如果失败则在批量查询中索引不会被删除。

这就是我现在用于批量索引的方法(并且有效):

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\" }");
在foreach之前但无济于事。有没有办法在向其添加元素之前删除批量索引?

0 个答案:

没有答案