1.根据 ID 删除
可以根据文档 ID 删除对应的文档。
// Delete 通过 ID 删除文档
func Delete(ctx context.Context, index, id string) error {
_, err := GetESClient().Delete().Index(index).Id(id).Refresh(“true”).Do(ctx)
return err
}
注意:重复删除会报elastic: Error 404 (Not Found)错。
对应 RESTful API 为:
DELETE /es_index_userinfo/_doc/1?refresh=true
2.根据条件删除文档
我们也可以根据条件来删除符合条件的文档,即 Delete by Query,即使没有符合条件的文档,也不会报 404 错误。
// DeleteByQuery4ES 根据条件删除文档
// param: index 索引; query 条件
// ret: 删除的文档数; error
func DeleteByQuery4ES(ctx context.Context, index string, query elastic.Query) (int64, error) {
rsp, err := GetESClient().DeleteByQuery(index).Query(query).Refresh(“true”).Do(ctx)
if err != nil {
return 0, err
}
return rsp.Deleted, nil
}
https://cloud.tencent.com/developer/article/1911262