目前我有个索引,很多字段都是支持搜索的,但大部分的查询,都是针对use id这个keyword类型的字段做term查询。这个索引每天会导入一次数据,导入前查询的是前一天索引,导入完成后切换到当天的索引。
现在遇到一个问题是,每次刚切换到新索引的时候,开始性能会很差,有很多查询超时,大概持续几秒到十几秒。
ES有 index.store.preload 这个参数可以提前加载数据到内存,但因为我的这个索引有很多字段,相关的数据都很大,其实我只想到user id这个字段相关的["tim", "doc", "dim"]内容能做preload,查了下官方文档似乎只能整体加载,并不能指定字段。只有fielddata才可以在mapping里按字段来设置preload。
那么如果我想要解决上面问题,比较好的办法是什么呢。是不是得让应用在切换前,先做小部分的切换,或者是在切换前执行几条相关的查询语句?
现在遇到一个问题是,每次刚切换到新索引的时候,开始性能会很差,有很多查询超时,大概持续几秒到十几秒。
ES有 index.store.preload 这个参数可以提前加载数据到内存,但因为我的这个索引有很多字段,相关的数据都很大,其实我只想到user id这个字段相关的["tim", "doc", "dim"]内容能做preload,查了下官方文档似乎只能整体加载,并不能指定字段。只有fielddata才可以在mapping里按字段来设置preload。
那么如果我想要解决上面问题,比较好的办法是什么呢。是不是得让应用在切换前,先做小部分的切换,或者是在切换前执行几条相关的查询语句?
0 个回复