delete by query
1.delete by query场景
基于查询出来的数据进行删除
2.删除的定义
删除并不是直接物理文档删除,而是打标记
3.API
POST index_name/_delete_by_query
{
"query": { //这些是自定义查询条件,根据查询条件去批量删除
"match": {//请求体跟Search API是一样的
"message": "some message"
}
}
}
4.具体什么时候物理文档删除?
段segument合并的时候
-
自动刷新每秒会创建新的segument,查询的时候会轮流检查每个segument
-
后台会定期进行segument的合并,小的seguement合并为大的segument,此时才会进行物理文档document的清除
5.手动强制合并segument及删除物理文档
POST /index_name/_forcemerge?max_num_segments=1&only_expunge_deletes=true
or
POST /index_name/_forcemerge?max_num_segments=1
参数说明
参数 | 说明 |
---|---|
max_num_segments | 表示将某个索引每个分片强制合并为几个segument的意思 |
only_expunge_deletes | 仅将标记为删除文档进行轻质合并并物理删除,不进行其他合并操作 |
原创:做时间的朋友