我將彈性搜索結果與 refresh_interval 1s 和 30s 進行比較,當時通過以相同的速率索引 2000 個檔案將 Refresh Policy 設定為 None 。但是它們的索引速度沒有太大區別。
使用版本:
<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 真的有幫助嗎?
在使用彈性搜索的繁重索引場景中,是否會提高索引速度以增加索引的重繪 間隔?
uj5u.com熱心網友回復:
這些是不同的東西。refresh(aka refreshPolicy) 讓你告訴 ES 在索引后開始重繪 并等待它完成 ( wait_for) 或不等待 ( true) 或者讓集群完成它的作業 ( false, None, 默認)。
refresh_intervalrefresh未啟用時最有意義,它定義了集群“如何完成其??作業”。重繪 是-1一項非常繁重的操作,因此建議在索引時增加它甚至禁用(設定為)。
如果您在更改時沒有注意到性能改進,refresh_interval那么您可能沒有最大限度地利用 ES 端的索引容量:批量大小調整、多索引執行緒/機器等(請參閱調整索引速度)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/383826.html
