#kotlin #elasticsearch #refresh #spring-data-elasticsearch
#kotlin #elasticsearch #обновить #spring-data-elasticsearch
Вопрос:
Я сравнивал результаты эластичного поиска с refresh_interval 1s и 30s, когда для политики обновления было установлено значение 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 ?
В сценариях интенсивной индексации с использованием эластичного seaarch улучшит ли скорость индексации увеличение интервала обновления индекса?
Ответ №1:
Это разные вещи. refresh
(он же refreshPolicy
) позволяет указать ES запускать обновление после индексации и ждать его завершения ( wait_for
) или не ждать ( true
) или просто оставить cluster выполнять свою работу ( false
, None
, по умолчанию).
refresh_interval
имеет наибольший смысл, когда refresh
не включен, и он определяет, как именно кластер «выполняет свою работу». Обновление — довольно тяжелая операция, поэтому рекомендуется увеличить его или даже отключить (установить значение -1
) на время индексации.
Если вы не заметили улучшения производительности при изменении refresh_interval
, то, вероятно, вы не исчерпали возможности индексации на стороне ES: массовая настройка размера, несколько потоков / машин индексации и т. Д. (см. Настройка скорости индексации)