elasticsearch学习(五)文档CRUD

目录

上一篇文章

elasticsearch学习(四)kibana安装

https://blog.csdn.net/github_36801273/article/details/151076329?spm=1011.2124.3001.6209

文档CRUD

创建索引

复制代码
PUT /my-index
{
    "mappings": {
        "properties": {
                "testFieldA": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                        }
                    }
                },
                "testFieldB": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                        }
                    }
                }
            }
    }
}

mapping的部分不是必须的,可以通过先创建索引,然后写入数据的方式自动生成mapping

查看索引字段mapping

复制代码
GET /my-index/_mapping

{
  "my-index": {
    "mappings": {
      "properties": {
        "testFieldA": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "testFieldB": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        }
      }
    }
  }
}

更新mapping

复制代码
POST  /my-index/_mapping
{
    "properties": {
        "testFieldC": {
            "type": "text",
            "fields": {
                "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                }
            }
        },
        "testFieldB": {
            "type": "text",
            "fields": {
                "keyword": {
                    "type": "keyword",
                    "ignore_above": 512
                }
            }
        }
    }
}

只能新增和更新字段,不能删除字段,删除字段用reindex

删除索引

复制代码
DELETE /my-index

测试索引是否存在

复制代码
HEAD /my-index

查看索引字段结构

复制代码
GET /my-index/_mapping

删除索引

复制代码
DELETE /my-index

文档命令

创建文档

Index

如果ID不存在,则创建新的,否则删除旧的再创建新的,增加版本号

复制代码
POST /my-index/_doc
{
    "id": "park_rocky-mountain",
    "title": "Rocky Mountain",
    "description": "Bisected north to south by the Continental Divide, this portion of the Rockies has ecosystems varying from over 150 riparian lakes to montane and subalpine forests to treeless alpine tundra."
}

Create

复制代码
// 不指定ID(系统自动生成)
POST /my-index/_doc
{
    "testFieldA":"testA1",
    "testFieldB":"testB1"
}

// 指定ID
POST /my-index/_doc/2
{
    "testFieldA":"testA2",
    "testFieldB":"testB2"
}
Create与Index的区别

create的文档ID如果已存在,会报失败

index的文档ID不存在,会新建,否则会把原来的删除了再增加

更新文档

复制代码
POST /my-index/_update/2
{
    "doc":{
        "testFieldA":"updateTestA2"
    } 
}

删除文档

复制代码
DELETE /my-index/_doc/2

查询文档

支持两种方式:

1 url查询,在url路径中使用查询参数

2 用DSL(Query Domain Specific Language)

简单查询语法

api 作用
/_search 查询集群上所有索引
/{index_name}/_search 查询指定索引
/{index_name1},{index_name2},{...}/_search 查询多个指定索引
/{index_prex}*/_search 查询以{index_prex}为开头的索引
复制代码
// 指定ID查询
GET /my-index/_doc/2

// 查询全量数据
GET /my-index/_search

// 查询my开头的索引数据
GET /my*/_search

// URL查询
GET /my-index/_search?q=testFieldA:updateTestA2

// DSL查询
GET /my-index/_search -H 'Content-Type:application/json' -d
{
    "query":{
        "match":{"testFieldA":"updateTestA2"}
    }
}
相关推荐
每天题库5 分钟前
交安C证报考条件有哪些?公路水运安全员C证报名时间及考试科目
学习·安全·考试·题库·考证
lifallen33 分钟前
长任务怎样选择遗忘:clearing、compaction 与 memory
人工智能·学习·ai·ai编程
高亦真33 分钟前
今天是学习嵌入式的第35天
linux·学习·算法
️学习的小王34 分钟前
FastAPI核心知识点与高频易错点总结
学习·fastapi
HugoStudio_SWAN1 小时前
洛谷 P1319 / P1320 压缩技术——同一枚硬币的正反面
c++·学习·程序人生·算法
λqaq72 小时前
MongoDB数据库基础 :非关系型数据库入门与常用操作
数据库·学习·mongodb·nosql
凯尔萨厮2 小时前
Java学习笔记十四(网络通信)
笔记·学习
AAA代码批发商2 小时前
DAYS 38 TCP并发服务器模型详解
linux·网络·笔记·学习
zyf1044162 小时前
暑期实践日志 Day46:复盘第六章,规整对应实践成果
学习·计算机网络·剪辑·暑期实践·课题任务
Elastic 中国社区官方博客2 小时前
不再有分配延迟:在无状态 Elasticsearch 中将快照与分片迁移解耦
大数据·运维·人工智能·elasticsearch·搜索引擎·全文检索