Create-Index-related BPC settings
When creating an OpenSearch index, the "settings" and "mappings" are particularly relevant. These can be influenced by the three Create-Index Core settings mentioned here.
Here is a complete Create-Index JSON that could be used to create an index named 'BPC-foobar'. This is only intended to illustrate how all three settings would interact.
{
"settings": {
"number_of_shards": "3",
"number_of_replicas": "1",
"analysis": {
"normalizer": {
"lowercaseNormalizer": {
"type": "custom",
"char_filter": [],
"filter": [
"lowercase"
]
}
}
}
},
"mappings": {
"dynamic_templates": [
{
"binaries": {
"mapping": {
"type": "binary"
},
"match_mapping_type": "string",
"match": "*_binary"
}
},
{
"strings": {
"unmatch": "*_binary",
"path_unmatch": "bpc-attachment-*.*",
"mapping": {
"fields": {
"lowercase": {
"normalizer": "lowercaseNormalizer",
"type": "keyword"
},
"raw": {
"type": "keyword"
}
},
"type": "text"
},
"match_mapping_type": "string",
"match": "*"
}
}
],
"properties": {
"id": {
"type": "keyword"
},
"name": {
"type": "text",
"fields": {
"lowercase": {
"normalizer": "lowercaseNormalizer",
"type": "keyword"
},
"raw": {
"type": "keyword"
}
}
},
"timestamp": {
"type": "date"
}
}
}
}
Core setting: indexTemplates
This is now the “most important” of the settings. These templates are stored directly in OpenSearch and are then automatically applied by OpenSearch based on the pattern when a new index is created.
For more information, see the corresponding OpenSearch documentation.
Overview of all BPC index templates (legacy) registered in OpenSearch:
curl 'localhost:9200/_template/bpc:*' | jq .
{
"bpc:for_all_indices": {
"order": 0,
"index_patterns": [
"*"
],
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1
}
},
"bpc:for_all_bpc_indices": {
"order": 5,
"index_patterns": [
"bpc-*"
],
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
}
}
}
|
Please ensure that all template names have the prefix |
Core setting: indexCreationSettings
This is our default setting, which we set when creating a new index. The value is set as the index’s “settings” value when the index is created.
If the equivalent value is set in a replication job, that value takes precedence.
For more information, see the corresponding OpenSearch documentation.
{
"analysis": {
"normalizer": {
"lowercaseNormalizer": {
"type": "custom",
"char_filter": [],
"filter": [
"lowercase"
]
}
}
}
}
Core setting: indexDynamicTemplates
The value is set as "dynamic_templates" in the mappings of an index’s fields. This ensures that field types are determined dynamically and allows for the addition of subfields based on definable conditions (data type, field name).
If the equivalent value is set in a replication job, that value takes precedence.
For more information, see the corresponding OpenSearch documentation.
[
{
"binaries": {
"mapping": {
"type": "binary"
},
"match_mapping_type": "string",
"match": "*_binary"
}
},
{
"strings": {
"unmatch": "*_binary",
"path_unmatch": "bpc-attachment-*.*",
"mapping": {
"type": "text",
"fields": {
"lowercase": {
"normalizer": "lowercaseNormalizer",
"type": "keyword"
},
"raw": {
"type": "keyword"
}
}
},
"match_mapping_type": "string",
"match": "*"
}
}
]