我有一个索引,例如配置文件。有一些模式示例:
default=date.today
要创建快照,请使用以下代码:
module.exports = {
profiles: {
properties: {
id: {
type: 'long'
},
indexedAt: {
type: 'date',
},
createdAt: {
type: 'date',
},
updatedAt: {
type: 'date',
},
profile: {
type: 'object',
properties: {
id: {
type: 'long'
},
createdAt: {
type: 'date',
},
updatedAt: {
type: 'date',
},
name: {
type: 'text',
fields: {
folded: {
type: "text",
analyzer: "folding"
},
sorted: {
type: "text",
fielddata: true,
analyzer: "sorting"
}
}
}
}
}
几分钟后创建快照。为了恢复它,我使用以下代码:
const repository ='reponame';
const snapshotName = `snapshotName`
const opts = {snapshot: snapshotName, repository, waitForCompletion: true}
try {
const repositoryResult = await this.client.snapshot.create(opts);
console.log(repositoryResult);
return;
} catch (ex) {
throw ex;
}
似乎它还原了所有文档,我可以看到它们,但是由于某种原因,名称字段的映射已更改,现在看起来像这样:
const repository ='reponame';
const snapshotName = 'snapshotname';
const opts = {snapshot: snapshotName, repository}
try {
const repositoryResult = await this.client.snapshot.restore(opts);
console.log('Result: ', repositoryResult);
} catch (ex) {
throw ex;
}
为什么会发生这种情况,以及如何将其从架构更改回映射? UPD:如我所见,快照根本无法恢复我的设置,因此即使我尝试更新映射,快照也会因错误而失败
"name" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}