es中提供了一些接口包括清除索引缓存,刷新索引,冲洗索引,合并索引接口等
清除缓存
清除缓存接口可以清除所有缓存或者关联一个或更多索引的特定缓存:
POST http://127.0.0.1:9200/secisland/_cache/clear
接口默认清理所有缓存,可以明确设置query,fielddata和request来清理特定缓存
所有关联特定字段的缓存也可以被清理
刷新索引
刷新接口可以明确地刷新一个或多个索引,使之前最后一次刷新之后的所有操作被执行。实时能力取决于使用的搜索引擎
刷新所有索引:
POST http://127.0.0.1:9200/_refresh
冲洗
索引主要通过执行冲洗将数据保存到索引存储并且清除内部事务日志,以此来释放索引的内存空间。默认,es使用内存启发式算法来自动触发冲洗操作的请求来清理内存
POST http://127.0.0.1:9200/secisland/_flush
合并索引
合并接口可以强制合并一个或者多个索引,合并分片数量和每个分片保存的Lucene索引,强制合并可以减少分片数量
强制合并会阻塞请求直到合并完成,http连接丢失,请求会在后台继续执行,任何新的请求都会被阻塞,直到合并完成
POST http://127.0.0.1:9200/secisland/_forcemerge
合并接口参数:
- max_num_segment—用于合并分片数量,为使其充分合并,通常设置值为1,默认线检查是否要进行合并。
- only_expunge_deletes—合并过程是否只删除分片中被删除的文档。在Lucene中,文档不会从分片中删除,只是标记为删除。执行分片合并,一个不包含被删除的文档的新分片会被创建。这个标识只合并拥有删除文档的分片。默认值为false。注意index.merge.policy.expunge_deletes_allowed阈值不会被覆盖
- flush—强制合并之后是否执行冲洗,默认为true。
合并接口可以通过单次应用到多个索引,或者所有索引
POST http://127.0.0.1:9200/_forcemerge