小言_互联网的博客

ElasticSearch: 数据刷新相关的刷新间隔refresh_interval、刷新接口_refresh和刷新策略RefreshPolicy

550人阅读  评论(0)

1.简述

默认情况下ElasticSearch索引的refresh_interval1秒,这意味着数据写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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场