当前位置: 首页 > 知识库问答 >
问题:

如何更新索引映射的动态作为严格的未来?

江宏深
2023-03-14

我在ES文档中发现映射仅在索引创建期间应用。所以我有点困惑,什么才是正确的方法。

共有1个答案

慕阳伯
2023-03-14

即使在使用put映射API保持strict之后,您也可以在将来更新映射。您不需要重新索引现有数据,除非您希望新添加的字段对旧文档有一些价值,旧文档是在用新字段更新映射之前添加的。

假设您已经有一个索引test,其中有一个字段,例如field1类型为keyword。现在,将来您需要添加新字段,例如integer类型的field2。您可以通过put映射api这样做,

PUT test/_mapping
{
  "properties": {
    "field2": {
      "type": "integer"
    }
  }
}

在执行上述操作之后,如果您使用

GET test/_mapping
{
  "test" : {
    "mappings" : {
      "dynamic" : "strict",
      "properties" : {
        "field1" : {
          "type" : "keyword"
        },
        "field2" : {
          "type" : "integer"
        }
      }
    }
  }
}
 类似资料:
  • 我对弹性搜索一无所知。所以,如果这是一个愚蠢的问题,请原谅我,我的问题可能已经在其他地方得到了回答,但我找不到。我想使用弹性搜索作为我的网络中PDF和docx的搜索引擎。我使用fscrawler将PDF文件吸收到弹性搜索中。因为我要摄取的文档是几种语言的,所以我想使用n-graming进行词干分析。为此,我想像这样更新我的映射 现在我收到了这个错误信息 {“error”:{“root_cause”

  • 问题所在 我是elasticsearch的新手,我想了解动态映射和重新索引文档之间的关系。 根据我的实验,当动态映射打开时,文档的重新索引是自动完成的。这意味着如果向文档中添加新字段,它将自动被索引。 TEST1-带映射的索引 TEST2-没有映射的索引

  • 问题内容: 也许我缺少一些简单的东西,但仍然无法弄清楚以下内容: 从ES 6.x开始,该字段已弃用,建议使用说明(https://www.elastic.co/guide/en/elasticsearch/reference/current/copy- to.html )。 但是,给我的印象是,您需要显式指定要复制到自定义字段的字段。但是,如果我使用动态映射,则我不事先知道字段,因此不能使用? 我

  • 我想为我的索引更新elasticsearch中的默认映射。但是所有的文档都指出我们必须为更新映射提供类型。问题是我有很多索引类型,它们是动态创建的,就像新类型的文档出现时一样。所以最好的处理方法是默认映射类型。因为我不必为每个类型定义映射。但现在我无法更新我的索引默认映射。如果可能的话,请告诉我?

  • 当我尝试更新我的索引,并添加一个从方法copy_to创建的新字段(见http://pastebin.com/T7GcHSXj)时,我得到了这个我不明白的错误: “error”:“MapperParsingException[解析后根类型映射不为空!其余字段:[映射:{tInfoclient={properties={Client={properties={d\u naiss\u cli={type

  • 我遵循Microsoft的指导,通过Azure ADB2C启用Dynamics Portal访问。基础设施已经启动并运行良好。我使用的是"登录"政策。但是,我在声明映射功能上遇到了麻烦。 我已经根据下面链接的文档中的说明配置了以下站点设置。 身份验证/OpenIdConnect/B2C/RegistrationClaimsMapping身份验证/OpenIdConnect/B2C/LoginCla