Skip to content

Nullable values for IndexSettings #2274

Open
@diogoalmiro

Description

@diogoalmiro

Firstly reported in elastic/elasticsearch-js/issues/2000

🐛 Wrong type

According to the documentation, to revert an index setting to the default value we should set its value to null.

The current type definition for IndexSettings doesn't allow null as a valid value.

/**
* @doc_id index-modules-settings
*/
export class IndexSettings
implements AdditionalProperties<string, UserDefinedValue>
{
index?: IndexSettings
mode?: string
routing_path?: string | string[]
soft_deletes?: SoftDeletes
sort?: IndexSegmentSort
/** @server_default 1 */
number_of_shards?: integer | string // TODO: should be only int
/** @server_default 0 */
number_of_replicas?: integer | string // TODO: should be only int
number_of_routing_shards?: integer
/** @server_default false */
check_on_startup?: IndexCheckOnStartup
/** @server_default LZ4 */
codec?: string
/** @server_default 1 */
routing_partition_size?: Stringified<integer>
/** @server_default true */
load_fixed_bitset_filters_eagerly?: boolean
/** @server_default false */
hidden?: boolean | string // TODO should be bool only
/** @server_default false */
auto_expand_replicas?: string
merge?: Merge
search?: SettingsSearch
/** @server_default 1s */
refresh_interval?: Duration
/** @server_default 10000 */
max_result_window?: integer
/** @server_default 100 */
max_inner_result_window?: integer
/** @server_default 10000 */
max_rescore_window?: integer
/** @server_default 100 */
max_docvalue_fields_search?: integer
/** @server_default 32 */
max_script_fields?: integer
/** @server_default 1 */
max_ngram_diff?: integer
/** @server_default 3 */
max_shingle_diff?: integer
blocks?: IndexSettingBlocks
max_refresh_listeners?: integer
/**
* Settings to define analyzers, tokenizers, token filters and character filters.
*/
analyze?: SettingsAnalyze
highlight?: SettingsHighlight
/** @server_default 65536 */
max_terms_count?: integer
/** @server_default 1000 */
max_regex_length?: integer
routing?: IndexRouting
/** @server_default 60s */
gc_deletes?: Duration
/** @server_default _none */
default_pipeline?: PipelineName
/** @server_default _none */
final_pipeline?: PipelineName
lifecycle?: IndexSettingsLifecycle
provided_name?: Name
creation_date?: Stringified<EpochTime<UnitMillis>>
creation_date_string?: DateTime
uuid?: Uuid
version?: IndexVersioning
verified_before_close?: boolean | string
format?: string | integer
max_slices_per_scroll?: integer
translog?: Translog
query_string?: SettingsQueryString
priority?: integer | string
top_metrics_max_size?: integer
analysis?: IndexSettingsAnalysis
settings?: IndexSettings
time_series?: IndexSettingsTimeSeries
shards?: integer
queries?: Queries
/**
* Configure custom similarity settings to customize how search results are scored.
*/
similarity?: SettingsSimilarity
/**
* Enable or disable dynamic mapping for an index.
*/
mapping?: MappingLimitSettings
'indexing.slowlog'?: IndexingSlowlogSettings
/**
* Configure indexing back pressure limits.
*/
indexing_pressure?: IndexingPressure
/**
* The store module allows you to control how index data is stored and accessed on disk.
*/
store?: Storage
}

Definition

Every property defined in IndexSettings should be nullable.

 /** 
  * @doc_id index-modules-settings 
  */ 
 export class IndexSettings 
   implements AdditionalProperties<string, UserDefinedValue> 
 { 
-  <prop_name>?: <allowed_type>
+  <prop_name>?: <allowed_type> | null
 }

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions