为什么快照还原后索引映射会更改?

时间:2019-07-04 10:32:34

标签: node.js elasticsearch backup snapshot

我有一个索引,例如配置文件。有一些模式示例:

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
       }
     }
   }

0 个答案:

没有答案