说明: 在做业务增删改时,有时批量执行比循环中单个执行性能要好很多,在es中有批量执行方法(除了script),如下(.net)代码:
public BulkResponse BulkUpdate(List<IBulkOperation> bulkOperationList)
{
BulkRequest bulkRequest = new BulkRequest(base._indexName);
bulkRequest.Operations = bulkOperationList;
return _client.Bulk(bulkRequest);
}
_client是指IElasticClient对象,添加Nest包。
下面代码是指:根据索引Ids集合,查询出索引数据,再批量更新SendStatus和时间字段,如下所示:
var models = res.SourceMany<CrawlHqbuyNewsContentEsModel>(Ids).ToList();
var operationList = new List<IBulkOperation>();
var time = DateTime.Now;
foreach (var model in models)
{
model.SendStatus = 1;
model.UpdateTime = time.ToS