elasticsearch索引管理中是否允许用点Map属性名称?

laawzig2  于 2021-07-15  发布在  ElasticSearch
关注(0)|答案(1)|浏览(326)

例如,具有键值对的json文件,其中键名之间有一个点。上载此文件时,点将被视为下一行,\n并且名称将拆分为两个属性。我尝试使用mapper.allow\u dots\u in\u name=true,但没有效果。
类似的问题由其他人张贴,但没有答复https://discuss.elastic.co/t/disable-expansion-of-field-names-with-dots-in-mapping/84761
如果有人能帮忙,我将不胜感激。

kx7yvsdv

kx7yvsdv1#

ElasticSearch2.4包含一个属性,其中字段名可以包含一个点。并且该字段将不会转换为对象样式Map。
此设置可通过以下方式启用:
export es \u java \u opts=“-dmapper.allow \u dots \u in \u name=true”
但是从5.x开始,如果不将字段值转换为对象Map,就不可能获得带有点的字段值。如果你索引一个像 .foo.bar (没有显式Map)。这将转换为

{
  "mappings": {
    "properties": {
      "abc": {
        "properties": {
          "foo": {
            "properties": {
              "bar": {
                "type": "long"
              }
            }
          }
        }
      }
    }
  }
}

最好避免字段名中出现点。您可以参考此文档,了解更多信息

相关问题