Consolidate elasticsearch application settings into one field

Background

There are 22 elasticsearch settings in the application_settings table:

["elasticsearch_worker_number_of_shards",
 "elasticsearch_analyzers_kuromoji_search",
 "elasticsearch_analyzers_smartcn_enabled",
 "elasticsearch_analyzers_smartcn_search",
 "elasticsearch_aws",
 "elasticsearch_requeue_workers",
 "elasticsearch_retry_on_failure",
 "elasticsearch_search",
 "elasticsearch_analyzers_kuromoji_enabled",
 "elasticsearch_client_request_timeout",
 "elasticsearch_indexed_field_length_limit",
 "elasticsearch_indexed_file_size_limit_kb",
 "elasticsearch_indexing",
 "elasticsearch_limit_indexing",
 "elasticsearch_max_bulk_concurrency",
 "elasticsearch_max_bulk_size_mb",
 "elasticsearch_max_code_indexing_concurrency",
 "elasticsearch_pause_indexing",
 "elasticsearch_aws_access_key",
 "elasticsearch_aws_region",
 "elasticsearch_url",
 "elasticsearch_username"]

According to the developer docs we should save all elasticsearch settings into one JSONB field:

Screenshot_2024-10-22_at_13.01.10

Proposal

Create a single application setting called elasticsearch for all elasticsearch-related settings and move the existing settings into that field.