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"}
    }
}
相关推荐
清涧游6 小时前
solar应急响应-7月
学习·安全
繁花与尘埃6 小时前
Java流程控制04——if选择结构(本文为个人学习笔记,内容整理自哔哩哔哩UP主【遇见狂神说】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
java·笔记·学习
在未来等你7 小时前
Elasticsearch面试精讲 Day 8:聚合分析与统计查询
大数据·分布式·elasticsearch·搜索引擎·面试
_Kayo_7 小时前
React 学习笔记4 Diffing/脚手架
笔记·学习·react.js
小关会打代码7 小时前
深度学习之第七课卷积神经网络 (CNN)调整学习率
深度学习·学习·cnn
amwydadw7 小时前
学习commonJS和esModuleJS的代码记录上传到git
学习
爱喝白开水a7 小时前
从零开始学无监督学习:图像混合与标签平滑技术详解,收藏不走丢
人工智能·深度学习·学习·ai·大模型·编程·ai大模型
序属秋秋秋8 小时前
我的创作纪念日——《惊变365天》
经验分享·学习·程序人生·纪念日·生活·大学生
永日456708 小时前
学习日记-spring-day47-9.1
服务器·学习·spring