Elasticsearch 索引管理中是否允许使用点映射属性名称?

LCK*_*LCK 3 elasticsearch

例如,具有键值对的 JSON 文件,其中键名称之间有一个点。上传此文件时,点将被视为下一行 \n 并且名称将分为两个属性。我尝试在设置中使用 mapper.allow_dots_in_name=True 但没有效果。

其他人发布了类似的问题,但没有回复https://discuss.elastic.co/t/disable-expansion-of-field-names-with-dots-in-mapping/84761

如果有人可以提供帮助,我们将不胜感激。

ESC*_*der 8

Elasticsearch 2.4 包含一个属性,其中字段名称可以包含点。并且该字段不会转换为对象样式映射。

可以通过以下方式启用此设置

导出 ES_JAVA_OPTS="-Dmapper.allow_dots_in_name=true"

但从 5.x 开始,如果不将其转换为对象映射,则无法获取带点的字段值。如果您对字段进行索引abc.foo.bar(没有显式映射)。这将被转换为

{
  "mappings": {
    "properties": {
      "abc": {
        "properties": {
          "foo": {
            "properties": {
              "bar": {
                "type": "long"
              }
            }
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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