Easy Heading Free |
---|
navigationTitle | On this Page |
---|
navigationExpandOption | expand-all-by-default |
---|
|
Mappings has been changed for the index aspire-identitycache in version 5.2. The action you must take depends on the need to preserve existing data:
...
In all code blocks below Kibana is expected to be used for sending requests to Elasticsearch.
No need to preserve existing data
In that case simply delete existing index after stopping Aspire. When you start Aspire 5.2 version the index will be automatically created with the existing new mapping.
Code Block |
---|
DELETE aspire-identitycache |
Convert existing data
- Stop Aspire
- Create new index aspire-identitycache_new with new 5.2 mapping
- Run reindex script to convert data from the old index aspire-identitycache to the new one aspire-identitycache_new
- Delete old index aspire-identitycache
- Create alias aspire-identitycache and assign it to the new index aspire-identitycache_new
- Start Aspire 5.2
Create new index aspire-identitycache_new with new 5.2 mapping
Note |
---|
|
If you want to preserve settings related to the number of shards or replicas, you must also include the 'settings' part. |
Code Block |
---|
PUT aspire-identitycache_new
"mappings": {
"properties": {
"mappingsidentity": {
"properties": {
"identity.seedId": {
"type": "keyword"
},
"identity.timestamp": {
"type": "keyword"
}
}
},
"dynamic_templates": [ }
{}
},
"alldynamic_as_keywordtemplates": {[
{
"match_mapping_type "all_as_keyword": "*",{
"path_match": "identity.attributes.*",
"mapping": {
"type": "keyword"
}
}
},
{
"date_to_string": {
"match_mapping_type": "date",
"mapping": {
"type": "text"
}
}
},
{
"boolean_to_string": {
"match_mapping_type": "boolean",
"mapping": {
"type": "text"
}
}
},
{
"long_to_string": {
"match_mapping_type": "long",
"mapping": {
"type": "text"
}
}
},
{
"double_to_string": {
"match_mapping_type": "double",
"mapping": {
"type": "text"
}
}
},
{
"binary_to_string": {
"match_mapping_type": "binary",
"mapping": {
"type": "text"
}
}
}
]
}
} |
Run reindex script
Code Block |
---|
POST _reindex
{
"source": {
"index": "aspire-identitycache"
},
"dest": {
"index": "aspire-identitycache_new"
},
"script": {
"lang": "painless",
"source": """
String seedHash = null;
Map seedHashObject = null;
def identity = ctx._source.identity;
if (identity != null) {
for (def entry : identity.entrySet()) {
def val = entry.getValue();
if (val instanceof Map && val.containsKey('attributes')) {
seedHash = entry.getKey();
seedHashObject = val;
}
}
}
if(seedHash != null){
Map attributes = seedHashObject.get('attributes');
identity.remove(seedHash);
identity.put('attributes', attributes);
}
"""
}
}
|
Delete old index
Code Block |
---|
DELETE aspire-identitycache |
Create new alias
Code Block |
---|
POST _aliases
{
"actions": [
{
"add": {
"index": "aspire-identitycache_new",
"alias": "aspire-identitycache"
}
}
]
} |
...