
ES idle search
coding七月 06, 20221mins
ElasticSearch
ES是近实时查询,根据refresh_interval 设置的时间间隔将数据刷新到可被搜索的段后,才能被查询到。
ES 7.2加入了index.search.idle.after 的设置。如果refresh_interval 没有显示设置,则默认1s刷新一次,并且如index.search.idle.after 设置的时间内都没有接收到查询请求,分片会进入idle状态,不会进行1s的刷新。但是如果idle状态下接收到新的请求,则这次请求会等待数据刷新后才会执行查询,导致这个查询最终时间会比较长。
也就是说,要么
- 设置
refresh_interval固定时间刷新, 此时index.search.idle.after是没有用的。分片在空闲时段会产生一些不必要的刷新,但是查询请求的时间会比较稳定。 - 要么不设置
refresh_interval,此时index.search.idle.after生效。可以在idle后减少一些不必要的刷新。但是这种情况下是,无法设置非idle状态下的刷新频率的,固定1s一次。
具体的选择要根据业务情况
- 写入数据比较多,查询比较少的情况。 可以使用idea search,减少一些刷新动作,提交插入的效率。
- 写入数据不多,但是对查询时间比较敏感的,设置
refresh_interval,保证相对及时的刷新。
评论
新的评论
下一篇
Emotion Babel
.babelrc "emotion" must be the first plugin in your babel config plugins list. @emotion 会使用 @emotion/babel-plugin 而之前的 emotion 会使用 […
