首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引用多个字段的Elasticsearch别名类型

问引用多个字段的Elasticsearch别名类型
EN

Stack Overflow用户
提问于 2019-08-15 18:40:19
回答 1查看 1.2K关注 0票数 0

我使用Elasticsearch别名字段来重命名映射中的某些字段,而不需要重新索引所有字段。效果很好。现在,我还想重命名一些多个字段,如下所示:

代码语言:javascript
复制
"message":{
  "type":"text",
  "fields":{
    "raw":{
      "type":"keyword"
    }
  }
}

这是一个名为message的分析字段和一个名为message.raw的关键字版本。我可以像这样为message做一个别名:

代码语言:javascript
复制
"title":{
  "type":"alias",
  "path":"message"
}

但我似乎想不出如何将message.raw字段化名。我尝试过不同的东西。

  1. 怀疑只要使用title.raw并希望Elasticsearch将其转换为message.raw,这将是开箱即用的。没起作用。
  2. 将raw指定为title中的字段
代码语言:javascript
复制
"title":{
    "type":"alias",
    "path":"message",
    "fields":{
        "raw":{
            "type":"alias",
            "path":"message.raw"
        }
    }
}

这会在更新映射时产生以下错误:标题的映射定义不支持参数:字段:{raw={type=alias,path=message.raw}}

  1. 指定title.raw为新字段:
代码语言:javascript
复制
"title":{
    "type":"alias",
    "path":"message"
},
"title.raw":{
    "type":"alias",
    "path":"message.raw"
}

这会导致错误:无法将字段别名映射标题与非字段别名的映射合并。

这是支持的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-16 07:14:47

不支持引用别名中的多个字段。来自文档:aliases cannot be used as the target of copy_to or in multi-fields。

您可以为您的多字段创建一个没有点的别名。您需要做的只是简单地将title.raw字段命名不同,例如title_raw

代码语言:javascript
复制
"title":{
    "type":"alias",
    "path":"message"
},
"title_raw":{                    <--- change the name here
    "type":"alias",
    "path":"message.raw"
}

然后,您可以以与message.raw相同的方式查询title_raw。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57514562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档