本文主要是介绍Elasticsearch 如何定义字段类型mappings ?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和文献引用请见1000个问题搞定大数据技术体系
正文
为什么要定义 mappings ?
在es当中,每个字段都会有默认的类型,根据我们第一次插入数据进去,es会自动帮我们推断字段的类型,当然我们也可以通过设置mappings来提前自定义我们字段的类型
1、使用mappings来提前定义字段类型
使用mapping的映射管理,提前指定字段的类型,防止后续的程序问题;
DELETE document
PUT document
{"mappings": {"article" : {"properties":{"title" : {"type": "text"} , "author" : {"type": "text"} , "titleScore" : {"type": "double"} }}}
}
get document/article/_mapping
2、基本命令
DELETE school
PUT school
{"mappings": {"logs" : {"properties": {"messages" : {"type": "text"}}}}
}
添加索引:school,文档类型类logs,索引字段为message ,字段的类型为text
GET /school/_mapping/logs
继续添加字段
POST /school/_mapping/logs
{"properties": {"number" : {"type": "text"}}
}GET /school/_mapping/logs
3、获取映射字段
语法:
GET /school/_mapping/logs/field/number
4、管理索引库分片数以及副本数settings
所谓的settings就是用来修改索引分片和副本数的;
比如有的重要索引,副本数很少甚至没有副本,那么我们可以通过setting来添加副本数
DELETE document
PUT document
{"mappings": {"article" : {"properties":{"title" : {"type": "text"} , "author" : {"type": "text"} , "titleScore" : {"type": "double"} }}}
}GET /document/_settings
可以看到当前的副本数是1,那么为了提高容错性,我们可以把副本数改成2:
PUT /document/_settings
{"number_of_replicas": 2
}
副本可以改,分片不能改
PUT /document/_settings
{"number_of_shards": 3
}
这篇关于Elasticsearch 如何定义字段类型mappings ?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!