【问题标题】:Creating a new field into existing index - ElasticSearch在现有索引中创建一个新字段 - ElasticSearch
【发布时间】:2021-07-30 11:31:29
【问题描述】:

我想创建一个新字段并将其添加到现有索引中,这样我就可以向该新字段发送唯一值。我希望有一个 API 可以做到这一点,而不必在 Kibana 的 CLI 中做到这一点。但我遇到了这个article,它告诉你如何向现有索引添加新字段。

我尝试将其添加到 _source 字段下,但不允许。

PUT customer-simulation-es-app-logs-development-2021-07/_mapping
{
  "_source":{
    "TransactionKey":{
      "type": "keyword"
    }
  }
}

然后我将其添加到properties,这让我:

PUT customer-simulation-es-app-logs-development-2021-07/_mapping
{
  "properties":{
    "TransactionKey":{
      "type": "keyword"
    }
  }
}

为了确保它已更新,我运行了 cmd GET customer-simulation-es-app-logs-development-2021-07/_mapping,它确实返回了它。

{
  "customer-simulation-es-app-logs-development-2021-07" : {
    "mappings" : {
      "properties" : {
        "@timestamp" : {
          "type" : "date"
        },
        "TransactionKey" : {
          "type" : "keyword"
        },
        "exceptions" : {
          "properties" : {
            "ClassName" : {
              "type" : "text",
              "fields" : {
                "keyword" : {
                  "type" : "keyword",
                  "ignore_above" : 256
                }
              }
            },
.....

但是当我去 Discover 并在字段中输入 TransactionKey 时,什么都没有弹出。我没有将新字段正确添加到现有索引中吗?

【问题讨论】:

    标签: elasticsearch kibana


    【解决方案1】:

    如果您运行的是 7.11 之前的版本,则需要转到堆栈管理 > 索引模式并刷新索引模式,然后才能在“发现”视图中看到新字段。每次索引映射更改时,您都需要这样做。

    自 7.11 起,索引模式在需要时为 refreshed automatically

    【讨论】:

    • 谢谢!但是,我在 7.13 上运行,只有单击“添加过滤器”才会显示“可用字段”下的选项。如果没有值发送到创建的新字段,它不会显示在“可用字段”下吗?另一方面,有没有办法将值附加到新创建的字段?
    • 您需要在现有文档的该字段中填充一些值,以便该字段显示在“可用字段”中。
    • 现在有意义了!欣赏它! :)
    • 太棒了,很高兴它有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 2021-05-06
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多