当刷新策略为 none 时设置弹性搜索刷新间隔
Setting elastic search refresh interval when Refresh Policy is none
我将弹性搜索结果与 refresh_interval 1 秒和 30 秒进行比较,当刷新策略设置为 None 以相同的速率索引 2000 个文档时。但是他们的索引速度相差不大
使用版本:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>4.2.0</version>
</dependency>
配置:
@Bean
fun elasticsearchTemplate(): ElasticsearchOperations? {
var restTemplate = ElasticsearchRestTemplate(client())
restTemplate.refreshPolicy = RefreshPolicy.None
return restTemplate
}
以及文档和设置:
@Document(indexName = "book")
@Setting(refreshInterval = "1s")
class Book(
@Id
var id: String? = null,
@Field(type = FieldType.Keyword)
var title: String,
@Field(type = FieldType.Keyword)
var author: String,
@Field(type = FieldType.Date)
var date: Date,
)
我查看了 refresh 和 refresh_interval 的弹性搜索文档,但我想确保在将刷新策略设置为 None 的情况下,是否真的有助于增加 refresh_interval ?
在使用 elastic seaarch 的繁重索引场景中,是否会提高索引速度以增加索引的刷新间隔?
这些是不同的东西。 refresh
(又名 refreshPolicy
)让您告诉 ES 在索引后开始刷新并等待它完成(wait_for
)或不等待(true
)或离开集群做它的工作(false
,None
,默认)。
refresh_interval
在未启用 refresh
时最有意义,它定义了集群“完成其工作”的确切方式。刷新是相当繁重的操作,因此建议在索引时增加甚至禁用(设置为-1
)。
如果您在更改 refresh_interval
时没有注意到性能提升,那么您可能还没有在 ES 端用尽索引容量:批量大小调整、多重索引 threads/machines 等(请参阅 Tune for indexing speed)
我将弹性搜索结果与 refresh_interval 1 秒和 30 秒进行比较,当刷新策略设置为 None 以相同的速率索引 2000 个文档时。但是他们的索引速度相差不大
使用版本:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>4.2.0</version>
</dependency>
配置:
@Bean
fun elasticsearchTemplate(): ElasticsearchOperations? {
var restTemplate = ElasticsearchRestTemplate(client())
restTemplate.refreshPolicy = RefreshPolicy.None
return restTemplate
}
以及文档和设置:
@Document(indexName = "book")
@Setting(refreshInterval = "1s")
class Book(
@Id
var id: String? = null,
@Field(type = FieldType.Keyword)
var title: String,
@Field(type = FieldType.Keyword)
var author: String,
@Field(type = FieldType.Date)
var date: Date,
)
我查看了 refresh 和 refresh_interval 的弹性搜索文档,但我想确保在将刷新策略设置为 None 的情况下,是否真的有助于增加 refresh_interval ?
在使用 elastic seaarch 的繁重索引场景中,是否会提高索引速度以增加索引的刷新间隔?
这些是不同的东西。 refresh
(又名 refreshPolicy
)让您告诉 ES 在索引后开始刷新并等待它完成(wait_for
)或不等待(true
)或离开集群做它的工作(false
,None
,默认)。
refresh_interval
在未启用 refresh
时最有意义,它定义了集群“完成其工作”的确切方式。刷新是相当繁重的操作,因此建议在索引时增加甚至禁用(设置为-1
)。
如果您在更改 refresh_interval
时没有注意到性能提升,那么您可能还没有在 ES 端用尽索引容量:批量大小调整、多重索引 threads/machines 等(请参阅 Tune for indexing speed)