1.简述
默认情况下ElasticSearch
索引的refresh_interval
为1
秒,这意味着数据写1
秒才就可以被搜索到。
因为上述表现,所以称ElasticSearch是近实时
搜索引擎。
如果需要调整数据刷新方案,则有三种途径:
- 设置数据刷新间隔:refresh_interval。
- 调用数据刷新接口:
_refresh
。 - 设置数据刷新策略:RefreshPolicy。
本文只描述前两种途径。
2.设置刷新间隔refresh_interval
2.1.调整间隔
例如:在ELK中,ElasticSearch的主要应用在于大量写日志,而非近实时搜索,此时可以增大刷新间隔。如下:
# 调整所有index的刷新间隔位5分钟
PUT
{
"settings": {
"refresh_interval": "5m"
}
}
# 调整指定index的刷新间隔为180秒
PUT /order_log
{
"settings": {
"refresh_interval": "180s"
}
}
2.2.关闭间隔
例如:现在需要将mysql中的数据做一次ElasticSearch全量更新,此时可以先关闭自动刷新,全量更新完成之后再打开。
# 关闭全部index的数据刷新
PUT
{
"settings": {
"refresh_interval": -1
}
}
# 调整指定index的刷新间隔为1秒
PUT /user
{
"settings": {
"refresh_interval": "1s"
}
}
2.3.注意事项
- 刷新间隔为
-1
代表关闭数据刷新。 - 刷新间隔设置时应改携带单位,如:1h、2m、3s。
3.调用刷新接口_refresh
可以手动调用ElasticSearch提供的API进行数据刷新,如下:
# 刷新全部index的数据
POST /_refresh
# 刷新指定index的数据
POST /user/_refresh
4.设置刷新策略RefreshPolicy
详见:Elasticsearch数据刷新策略RefreshPolicy简述
转载:https://blog.csdn.net/hanchao5272/article/details/100078523
查看评论