Elasticsearch 指南 [7.0]

  • 时间:
  • 浏览:0

根据routing key指定分片下的数据:

If you provide routing then the routing is copied to the scroll query, limiting the process to the shards that match that routing value:

POST twitter/_delete_by_query?routing=1

{

}

POST twitter,blog/_delete_by_query

{

发送 refresh 将在请求完成后刷新 _delete_by_query 中涉及的所有分片。这与delete api的refresh参数不同,后者只会刷新接收到删除请求的shard。与删除API不同,它不支持等待。

有就让 请求中带有wait_for_completion=false,没办法 ElasticSearch将执行某些飞行前检查,启动请求,有就让 返回可与任务API一起去使用的任务,以归还或获取任务的情况表。ElasticSearch还将在.tasks/task/$taskid处创建此任务的记录作为文档。这是您的,您能没办法 根据须要保留或删除。完成后,删除它,那我ElasticSearch能没办法 回收它使用的空间。

除了标准参数如pretty,delete by query api还支持refresh、wait_for_completion、wait_for_active_shards、timeout和scroll。

wait_for_active_shards控制在继续执行请求就让须要居于2个个活跃的shard副本。详情请参阅此处。timeout 控制每个写请求等待不可用分片可用的时间。这有一种最好的方法在批量API中的工作最好的方法删改相同。有就让 “按查询删除”使用scroll搜索,您还能没办法 指定scroll参数来控制“搜索上下文”保持活动的时间,类式?scroll=10m。默认为5分钟。

}

归还操作会快速执行有就让 也须要几秒的时间。Task列表API仍然会展示某些查询删除操作直到他检查到某些人被归还有就让 终结某些人。

结果如下:

删除多个索引数据,如下:

每秒请求书能没办法 设置为任何正十进制数(1.4、6、50000等),并通过用等待间隔每个批来限制查询删除请求操作的下行速率 。通过将每秒请求数设置为-1,能没办法 禁用阈值。



### Response body 响应体

The JSON response looks like this:

就像在 delete by query API使用一样,requests_per_second能没办法 设置为-1来归还限流有就让 某些小数比如1.7或2来限制流量。提高下行速率 能没办法 立即生效,限制下行速率 会在完成本批次就让生效。以上为了避免超时。

By default _delete_by_query uses scroll batches of 50000. You can change the batch size with the scroll_size URL parameter:

POST twitter/_delete_by_query?scroll_size=50000

{

}

'

结果如下:

{

curl -X POST "localhost:9500/twitter/_delete_by_query?conflicts=proceed" -H 'Content-Type: application/json' -d'

{

当索引使用了路由控制的功能时,为了删除文档,还应该提供路由值。类式:

curl -X DELETE "localhost:9500/twitter/_doc/1?routing=kimchy"

底下将删除一根绳子 ID为1的tweet,但将根据用户进行路由。请注意,有就让 没办法 正确的发送路由,则发出“删除”命令将因为文档无法删除。

当 _routing 映射设置为必需且未指定路由值时,删除API将抛出RoutingMissingException并拒绝请求。

{

使用task id能没办法 直接查看详情:

curl -X GET "localhost:9500/_tasks/r1A2WoRbTwKZ516z6NEs5A:36619"

}

See 删除映射类型.

注:目前一另另一个多es的索引Index仅带有一种type的数据即_doc,类式的数据希望放到同一另另一个多Index下说说,能没办法 在mapping中增加一另另一个多类型字段避免,同一另另一个多Index下不类式型(业务)的数据字段个数及类型要基本一致,保持索引数据的密集。

}

curl -X GET "localhost:9500/_tasks?detailed=true&actions=*/delete/byquery"

结果如下:

If you’d like to count version conflicts rather than cause them to abort, then set conflicts=proceed on the url or "conflicts": "proceed" in the request body.

查询删除支持切片滚动的最好的方法并行执行删除操作。某些并行化操作能没办法 提高下行速率 有就让 提供了有一种便捷的最好的方法将请求切分为一另另一个多个的小每段。

}

执行中的删除操作的requests_per_second值能没办法 使用_rethrottle API修改,如下:

curl -X POST "localhost:9500/_delete_by_query/r1A2WoRbTwKZ516z6NEs5A:36619/_rethrottle?requests_per_second=-1"

### Works with Cancel Task API

使用归还任务api能没办法 归还查询删除操作

curl -X POST "localhost:9500/_tasks/r1A2WoRbTwKZ516z6NEs5A:36619/_cancel"