Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Cannot clear refresh_interval of Index Setting with null using low level client

Abierto
#283 2 comentarios 3 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
elasticsearch, java
Área
api, backend

Línea de trabajo

Comienza con el uso de Time.Builder y PutIndicesSettingsRequest mostrado en el issue y, después, sigue cómo el low-level client serializa un null refresh interval. Compáralo con la solicitud del High Level Client y determina si se admite borrar la configuración; se considerará terminado cuando el comportamiento se haya corregido o esté claramente documentado y cubierto por una prueba de regresión.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Java API client version

7.17.1

Java version

8

Elasticsearch Version

7.17.1

Problem description

Using the rest High Level Client, I was able to overwrite the refresh_interval value of an indexSetting to be the default value using the following bit of code:

UpdateSettingsRequest updateSettingsRequest = new UpdateSettingsRequest("accounts-index");
updateSettingsRequest.settings(Settings.builder().put("index.refresh_interval", (String) null));

try {
    restHighLevelClient.indices().putSettings(updateSettingsRequest, RequestOptions.DEFAULT);
}
catch(IOException e) {
    throw new Exception();
}

Using the low level client, I am unable to do so. If I try to run the following bit of code:

IndexSettings indexSettings = IndexSettings.of(is -> is
    .refreshInterval(Time.of(t -> t.time((String) null))));

PutIndicesSettingsRequest putIndicesSettingsRequest = PutIndicesSettingsRequest.of(pisr -> pisr
    .index(singleton("accounts-index"))
    .settings(indexSettings));

try {
    PutIndicesSettingsResponse putIndicesSettingsResponse = esClient.indices()..putSettings(putIndicesSettingsRequest);

    return putIndicesSettingsResponse.acknowledged();
}
catch (IOException e) {
    throw new Exception(e);
}

I get the exception:

co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'Builder.<variant value>'
	at co.elastic.clients.util.ApiTypeHelper.requireNonNull(ApiTypeHelper.java:76)
	at co.elastic.clients.elasticsearch._types.Time.<init>(Time.java:97)
	at co.elastic.clients.elasticsearch._types.Time.<init>(Time.java:57)
	at co.elastic.clients.elasticsearch._types.Time$Builder.build(Time.java:176)
	at co.elastic.clients.elasticsearch._types.Time$Builder.build(Time.java:158)
	at co.elastic.clients.elasticsearch._types.Time.of(Time.java:102)

For now, I have reverted to setting the refresh_interval explicitly to 1 second when I want to set it to the default. I want to however switch back to being able to overwrite the refresh_interval to just be the default without explicitly setting it, ie. by passing null instead of "1s" to the Time parameter.

Is there a way to do this I am missing or is this a bug in the Time object that does not allow passing of null?

Lenguaje dominante
Java
Estrellas
524
Forks
299
Merge medio
6 h 12 min
PR fusionados (30 d)
11

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de elastic/elasticsearch-java

Todos los issues de elastic/elasticsearch-java

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.