java - 如何在elasticsearch中为动态字段创建动态映射

标签 java elasticsearch

我需要使用动态模板为索引中未知的新字段创建动态映射。我的示例映射是:

{  
   "indexname":{  
      "dynamic_templates":[  
         {  
            "template_1":{  
               "match":"*",
               "dynamic fields":{  
                  "type":"dynamictype",
                  "index":"not_analyzed"
               }
            }
         }
      ]
   }
}

我对创建动态映射有点困惑,是否有人能指导我解决这个问题。

我想在运行时使用 java API 创建多个字段的映射,任何人都可以指导我。

最佳答案

按照此操作:

 {
      "dynamic_templates": [
        {
          "template_1": {
            "path_match": "*",
            "mapping": {
              "index": "not_analyzed",
              "type": "string"
            }
          }
        }
      ]
    }

我不太确定代码中的“dynamictype”。您必须指定确切的类型。

编辑:

{
  "dynamic_templates": [
    {
      "dynamic_1": {
        "path_match": "abcd*",
        "mapping": {
          "include_in_all": true,
          "index": "not_analyzed",
          "type": "string"
        }
      }
    },
    {
      "dynamic_2": {
        "path_match": "address.phone.*",
        "mapping": {
          "include_in_all": true,
          "type": "long"
        }
      }
    }
  ]
}

第一个(名为 template_1)将应用于以“abcd”开头的所有新字段,第二个(名为 template_2)将应用于所有已嵌套在“地址”字段中的“电话”中的嵌套字段。

关于java - 如何在elasticsearch中为动态字段创建动态映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32733710/

相关文章:

java - 如何先安装第三方 msi 或 exe 或 bin,然后完成后启动主应用程序?

java - 使用相同的服务交流两个不同的项目

elasticsearch - Elasticsearch策展人- “--older-than 6”

elasticsearch - fscrawler容器不健康(退出代码126)

java - 为什么 spring boot 找不到我的 bean?

Java:如何在不修改类文件的情况下添加到基类

java - 如何使用 RestTemplate 从服务器接收应用程序/pdf 响应

c# - 使用 Elasticsearch .NET 和 NEST 6.x : How to MultiGet documents from multiples indices

python - Elasticsearch [PUT] 错误

elasticsearch - Elasticsearch 中多个字段的Groupby功能