【问题标题】:Setting elastic search refresh interval when Refresh Policy is none当 Refresh Policy 为 none 时设置弹性搜索刷新间隔
【发布时间】:2022-01-15 16:23:13
【问题描述】:

当通过以相同速率索引 2000 个文档将刷新策略设置为无时,我将弹性搜索结果与 refresh_interval 1s 和 30s 进行比较。但它们的索引速度差别不大。

使用版本:

 <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 真的有帮助吗?

在使用弹性搜索的繁重索引场景中,是否会提高索引速度以增加索引的刷新间隔?

【问题讨论】:

    标签: kotlin elasticsearch refresh spring-data-elasticsearch


    【解决方案1】:

    这些是不同的东西。 refresh (aka refreshPolicy) 让你告诉 ES 在索引后开始刷新并等待它完成 (wait_for) 或不等待 (true) 或者让集群完成它的工作 (false, None,默认)。

    refresh_intervalrefresh 未启用时最有意义,它定义了集群如何“完成其工作”。刷新是相当繁重的操作,因此建议在索引时增加甚至禁用(设置为-1)。

    如果您在更改 refresh_interval 时没有注意到性能改进,那么您可能没有在 ES 端最大化索引容量:批量大小调整、多个索引线程/机器等(请参阅 Tune for indexing speed

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-14
      • 2023-03-18
      • 2017-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多