索引、映射、文档
-
一个索引就是一个拥有几分相似特征的文档的集合,索引必须全部是小写字母的。
-
映射是定义一个文档和它所包含的字段如何被存储和索引的过程。
-
文档就是索引中存储的一条条数据。
通俗来理解就是:索引就是数据库中的表,而映射就是定义表时的约束(字段,类型等等),而文档就是表中的一条条数据。
1.索引的操作
1.1查询索引
#查询ES中的索引
GET _cat/indices?v
?
1.2创建索引
#创建索引
PUT /索引名=》PUT /product
?注意:ES中索引的健康状态:red(索引不可用)、yellow(可用,但存在风险)、green(健康),默认创建一个primary索引和备份索引,因为主备都在一台机器上,索引存在风险是yellow。
#创建一个green索引
PUT /orders
{
? "settings": {
? ? "number_of_shards": 1, #指定主分片的数量
? ? "number_of_replicas": 0, #指定副分片的数量
? }
}?
?
1.3删除索引
?#删除索引
DELETE /索引名=》DELETE /product
2.映射
字符串类型:keyword(不分词)、text(分词)
数字类型:integer、long
小数类型:float、double
布尔类型:boolean
日期类型:date
2.1创建索引的同时定义映射
#创建商品索引
#id,title,price,created_at,description
PUT /products
{
? "settings": {
? ? "number_of_shards": 1,?
? ? "number_of_replicas": 0
? },
? "mappings": {
? ? "properties": {
? ? ? ? "id":{
? ? ? ? ? "type":"integer"
? ? ? ? },
? ? ? ? "title":{
? ? ? ? ? "type":"keyword"
? ? ? ? },
? ? ? ? "price":{
? ? ? ? ? "type":"double"
? ? ? ? },
? ? ? ? "created_at":{
? ? ? ? ? "type":"date"
? ? ? ? },
? ? ? ? "description":{
? ? ? ? ? "type":"text"
? ? ? ? }
? ? }
? }
}?
?
2.2查询索引的映射
GET /索引名 /_mapping =》GET /products/_mapping
?
3.文档
3.1添加文档
注意:如果原来的文档id已经存在,那么就会删除原来的文档,再插入新的文档。
3.1.1手动指定id
# 添加文档操作 手动指定_id
POST /products/_doc/1
{
? "id":1,
? "title":"瑞星咖啡",
? "price":"10.5",
? "created_at":"2024-11-28",
? "description":"和好喝"
}?
3.1.2自动指定id
?# 添加文档操作 自动指定_id
POST /products/_doc/
{
? "title":"星巴克克",
? "price":"12.5",
? "created_at":"2024-11-18",
? "description":"不好喝"
}
?
3.2文档查询
3.2.1基于文档id查询
GET /products/_doc/1?
3.3删除文档
3.3.1基于id删除文档
DELETE /products/_doc/Dc-V6IwB9_tvl7L5kzja?
3.3.2查询一个索引下的所有文档
GET /products/_search
{
? "query": {
? ? "match_all": {}
? }
}?
3.4更新文档(保留原始文档)
3.4.1基于指定的字段进行更新
POST /products/_doc/1/_update
{
? "doc":{
? ? "price":"16.4",
? ? "description":"很好喝"
? }
}?
3.5.批量操作
必须在一行,不能换行!而且批量操作是不具备原子性的,如果出错了还会继续向下执行。
?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!