在前面我们介绍了elasticsearch创建mapping,里面涵盖创建mapping的大部分要点。对于mapping里面字段的类型介绍在此就不做多的解释了,这里我们介绍下elasticsearch创建mapping的时候有一些预定义字段,可以给我们提供很多意想不到的惊喜功能。
第一个预定义字段:_source字段
这个字段是我们经常见到的,例如在查询的时候,会返回一个_source字段,里面存储了原有的文档的所有值。如图:
上图就是一个_source的示例
在elasticsearch中其实_source是一个预定义字段,他默认的设置是 _source.enabled=true。代表的就是需要存储原始的文档。这个字段我们日常不用管就可以了,因为有_source字段,才能让我们使用elasticsearch的功能。在部分的Elasticsearch版本中此字段是不允许关闭的,我们也建议不要关闭这个字段。
第二个预定义字段:_all
在上面_source字段是存储所有的原始信息,_all字段的作用就是索引所有的原始信息,即把整个document的字段都统一索引到_all字段里面,这样子在查询的时候我们只需要在_all字段上进行查询即可。这种应用场景是例如我们有很多字段,我们在很多字段里面进行搜索,返回了结果的都需要,这时候我们不需要单独在某些field里面进行搜索,所以可以直接在_all里面搜索。
在elasticsearch中,_all字段也是被默认打开的,如果我们对索引要求高的话,可以关闭掉这个_all的索引,那么在搜索的时候我们需要指定到某些字段上进行搜索。这样也可以减小很多的索引量,同时加快插入数据的速度。
备注:
1、这个字段在elastcsearch6.x之前是存在的,elastcsearch6.x的版本默认关闭了这个预定义字段,elasticsearch7.x及之后的版本已经完全移除了这个字段。
2、基于我们演示的是7.x版本,因此这里就不详细描述了。
第三个预定义字段:_ttl
这个_ttl的字段含义是 time to live,在elasticsearch的早期版本里面,我们可以设置某些文档到了一定的时间之后就自动过期,然后elastcsearch就自动删除掉。这个在日常的使用中还是非常广泛的,例如日志等业务存储场景里面。
备注:
1、这个字段在目前的elastcsearch7及以上的版本里面也没有了,取而代之的是ILM的方案,后面我们会编写一套关于ILM的方案演示。
还没有评论,来说两句吧...