不为失败找理由,要为成功找方法。

es可以在创创建索引时,把自动刷新给关掉,创建完后,自动开启刷新么?

Elasticsearch | 作者 2bqianbi | 发布于2017年08月25日 | 阅读数:3984

问题背景(历史包袱,不用关注合理不合理的问题):
es里查id为xxx的记录,获取库存信息,发现查到的数据一会儿为0,一会儿是实际的值;

解决:
创建、更新索引时,设置settings.put("refresh_interval", "-1");

问题:
目前是在代码上控制的,操作索引前加一个这个,操作后恢复,但是代码这个东西,是没办法保证后续能规避掉类似问题的,新人写的时候很容易漏掉,想咨询一下,有没有什么方式,在服务端上直接配好了,这样后面,即便是新人来,写代码也不会因为漏掉什么配置而踩坑
已邀请:

Geralt

赞同来自:

ES不支持这样的操作,似乎也没看到过有第三方插件有这样的支持
你们程序中这样的设定是合理的,大批量写时refresh_interval=-1没什么问题
你说的这个东西,自己实现也不复杂,自己写一个吧

Cheetah

赞同来自:

一会查询是0,一会有数据,和刷新无关,应该是你的副本的某些分片有问题
一般来讲refresh_interval这个都是要关闭的,这个频率太高,性能影响较大

kennywu76 - Wood

赞同来自:

可以在search request里,加上preference选项,并提供一个自定义的字符串,比如用户session id,这样可以将某个用户的查询固定在部分shard上,避免不同shard refresh状态不一致带来的"jumping values" 问题。
 
参考: https://www.elastic.co/guide/e ... rence
 

要回复问题请先登录注册