}
}
}
null_value 的本质是将“NULL” 替换 null 值,以使得空值可被索引或者检索。
我们期望设置 Mapping 的时候,可以对各种数据类型添加一个任意指定的缺省值。但是 Elasticsearch Mapping 层面不支持,咋办?
只能去寻找其他的方案。
3、曲线救国实现 Elasticsearch 设置默认值
============================
直接给出答案,共三种设置默认值的。
3.1 方案 一:pipeline 设置默认值
# 创建 append 管道
PUT _ingest/pipeline/add_default_pipeline
{
“processors”: [
{
“set”: {
“field”: “sale_count”,
“value”: 1
}
}
]
}
# 创建索引
PUT customer
{
“mappings”:{
“properties”:{
“sale_count”:{
“type”:“integer”
},
“major”:{
“type”:“keyword”,
“null_value”: “NULL”
}
}
},
“settings”: {
“index”:{
“default_pipeline”:“add_default_pipeline”
}
}
}
插入数据,验证一把:
POST customer/_doc/1
{
“major”:null
}
返回结果:
“max_score” : 1.0,
“hits” : [
{
“_index” : “customer”,
“_type” : “_doc”,
“_id” : “1”,
“_score” : 1.0,
“_source” : {
“major” : null,
“sale_count” : 1
}
}
]
}
以上的方式,实现了sale_count 的默认值为1 的设置。
是借助索引设计层面在 setting 中关联 default_pipeline 实现的。
实现方式相对简单,能保证用户在设置索引的前提下,用户只关注写入数据,其他后台预处理管道帮助实现细节。
引申一下,针对开篇提到的第二个问题:
- create_time 借助 pipeline 管道预处理 set processor 实现即可。
PUT _ingest/pipeline/create_time_pipeline
{
“description”: “Adds create_time timestamp to documents”,
“processors”: [
{
“set”: {
“field”: “_source.create_time”,
“value”: “{{_ingest.timestamp}}”
}
}
]
}
DELETE my_index_0003
PUT my_index_0003
{
“settings”: {
“index.default_pipeline”: “create_time_pipeline”
}
}
POST my_index_0003/_doc/1
{}
GET my_index_0003/_search
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
最后
由于文案过于长,在此就不一一介绍了,这份Java后端架构进阶笔记内容包括:Java集合,JVM、Java并发、微服务、SpringNetty与 RPC 、网络、日志 、Zookeeper 、Kafka 、RabbitMQ 、Hbase 、MongoDB、Cassandra 、Java基础、负载均衡、数据库、一致性算法、Java算法、数据结构、分布式缓存等等知识详解。
本知识体系适合于所有Java程序员学习,关于以上目录中的知识点都有详细的讲解及介绍,掌握该知识点的所有内容对你会有一个质的提升,其中也总结了很多面试过程中遇到的题目以及有对应的视频解析总结。
va基础、负载均衡、数据库、一致性算法、Java算法、数据结构、分布式缓存**等等知识详解。
[外链图片转存中…(img-UnApGhhH-1710690063200)]
本知识体系适合于所有Java程序员学习,关于以上目录中的知识点都有详细的讲解及介绍,掌握该知识点的所有内容对你会有一个质的提升,其中也总结了很多面试过程中遇到的题目以及有对应的视频解析总结。
[外链图片转存中…(img-6IEUthim-1710690063201)]
[外链图片转存中…(img-zvzlDsqX-1710690063202)]