就像其他的很多语言一样,我们可以给已有的变量取一个别名(alias)。即便是对高级语言一样,比如我们定义不同的指针变量,指向同一个内存空间。这个有些类似别名的概念。

在Elasticsearch中,我们也可以为index中的一个字段(field)取一个另外的名字:

  • 它可以用来代替搜索请求中的目标(target)字段
  • 以及其它的被选定的API中

通常alias可以用来帮助我们重新命名一个字段,并让这个字段的名称符合我们的命名规则。我们可以参考ECS。通过alias的使用,可以使得我们的字段根据符合ECS标准。一个字段的alias只能有一个目标字段。

在使用alias时,字段别名的目标有一些限制:

  • 它必须是一个具体的字段(不是一个对象或者是另外一个alias)
  • 它必须在alias被创建时已经存在
  • 如果是一个nested的对象,那么alias必须具有和它的目标具有同样的nested scope

一个alias的应用例子

下面,我们来用一个具体的例子来说说明。我们首先来定义一个index的mapping如下:

    PUT trips
{
"mappings": {
"properties": {
"distance": {
"type": "long"
},
"route_length_miles": {
"type": "alias",
"path": "distance"
},
"transit_mode": {
"type": "keyword"
}
}
}
}

现在我们输入一下的两个文档,并搜索:

    PUT trips/_doc/1
{
"distance": 100,
"transit_mode": "mode1"
} PUT trips/_doc/2
{
"distance": 50,
"transit_mode": "mode2"
} GET _search
{
"query": {
"range" : {
"route_length_miles" : {
"gte" : 60
}
}
}
}

显示的结果是:

    {
"took" : 346,
"timed_out" : false,
"_shards" : {
"total" : 20,
"successful" : 20,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "trips",
"_type" : "_doc",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"distance" : 100,
"transit_mode" : "mode1"
}
}
]
}
}

从上面可以看出来,虽然我们没有使用在source中的distance,但是我们使用它的别名route_length_miles,我们可以照样把我们的统计数据搜索出来。

不被支持的API

不支持写入字段别名:尝试在索引或更新请求中使用别名将导致失败。 同样,别名不能用作copy_to的目标或多字段。

由于文档源中不存在别名,因此在执行源过滤时不能使用别名。 例如,以下请求将返回_source的空结果:

  • 不支持写入字段别名:尝试在索引或更新请求中使用别名将导致失败。 同样,别名不能用作copy_to的目标或多字段。
  • 由于文档源中不存在别名,因此在执行源过滤时不能使用别名。 例如,以下请求将返回_source的空结果:

最新文章

  1. Java内部类详解
  2. js中获取键盘事件【转】
  3. Android开发--RadioButton的应用
  4. Sublime Text 3常用快捷键
  5. openstack(liberty):部署实验平台(三,简单版本软件安装 之cinder,swift)
  6. iOS 最新版 CocoaPods 的安装使用
  7. 数学(容斥计数):LNOI 2016 方
  8. Google科学家前腾讯副总裁吴军将出席第二届万物互联创新大会
  9. 【渗透课程】第五篇-SQL注入的原理
  10. 算法-java代码实现归并排序
  11. linux系统命令学习系列-用户组管理
  12. html+css常用小笔记(持续更新)
  13. st-link调试和下载程序(待写)
  14. 《http权威指南》读书笔记3
  15. [CocoaPods]使用Gemfile
  16. 返回表达式列表中最小值least(exp1,exp2,exp3,……,expn)
  17. 一、K3 Cloud 实施指导《K3 Cloud实施手册》
  18. Linux7安装Oracle 11g 86%报错:Error in invoking target 'agent nmhs' of makefile
  19. Unity2017五子棋大战_人机_双人_UNET联网
  20. spring@Transactional注解事务不回滚不起作用无效的问题处理

热门文章

  1. labview从入门到出家1--第一个加法程序
  2. datax开启hana支持以及dolphinscheduler开启datax任务
  3. JavaWEB-01-MySQL基础
  4. 【有用的SQL】查Greenplum的数据字典
  5. linux 文件存放目录
  6. Odoo14 ir.rule 中的domain查询语句
  7. HTTP配置
  8. Python-基础学习-第二轮
  9. benchmark性能测试
  10. pytest自动化框架