05 elasticsearch学习笔记-基本CRUD
视频教程
Elasticsearch(7.8.1)沥血之作(包含仿百度搜索案例)
https://www.bilibili.com/video/BV1y5411j7su?p=5
视频资料提取地址:
链接:https://pan.baidu.com/s/1qvdGvhMX3tGLLVSaHSWg0w
提取码:qumi
链接:https://pan.baidu.com/s/1Kh_ne_gaJ0ONz319YSOnog
提取码:2uo8
4.1 基本CRUD
GET movies/_search # 查询movies的数据
GET movies/_count #查询movies的总数
GET _cat/indices #查看所有的索引
GET movies/_doc/24 #查询id为24的数据
POST users/_doc/1 #添加id为1的文档 ,如果没有指定id,ES会自动生成 { "firstname": "will",
"lastname": "smith" }
POST users/_create/2 #创建id为2的文档,如果索引中已存在相同id,会报错; { "firstname": "will",
"lastname": "smith" }
POST users/_update/2 #在id位2的文档中添加一个age属性,修改结构 { "doc": { "age": 30 } }
DELETE users/_doc/2 #删除id为2的文档
DELETE users #删除 users 索引
PUT users/_doc/1 #创建或者修改文档
PUT users/_create/2 #创建id为2的文档,如果已存在就报错,如果不存在就创建 { "firstname": "will",
"lastname": "smith" }
GET mget #批量查询多个指定的id的数据,也可以批量查询 { "docs": [ {" index": "users", " id": 1},
批量插入数据
POST users/ bulk
{"index": {" id": 3}}
{"firstname": "A", "lastname": "a"}
{"index":{" id": 4}}
{"firstname": "B", "lastname": "b"}
{"index": {" id": 5}}
{"firstname": "X", "lastname": "x"}
{"index": {"_id": 6}}
{"firstname": "Z", "lastname": "z"}
4.2 URI查询
GET movies/_search?q=2012 #查询所有的属性中只要包含2012的所有的数据,泛查询
GET movies/ search?q=2012&df=title #查询title中包含2012的所有的电影,df(default field)或者 GET movies/ search?q=title:2012
GET movies/_search?q=title:2012&from=10&size=8 #查询title中包含2012,从第10条开始,查询8条
数据
GET movies/_search?q=title:Beautiful Mind #查询title中包含Beautiful或者Mind的所有的数据
GET movies/_search?q=title:(Beautiful Mind)
GET movies/_search?q=title:(+Beautiful +Mind)
GET movies/_search?q=title:"Beautiful Mind" #查询title中包含 "Beautiful Mind"这个短语的所
有的数据
GET movies/_search?q=title:(Mind AND Beautiful) #查询title中既包含Mind又包含Beautiful的所有的数据,与顺序没有关系
>GET movies/_search?q=title:(Beautiful NOT Mind) #查询title中包含Beautiful但是不包含mind的所有的数据
GET movies/_search?q=title:(Beautiful -Mind)
GET movies/_search?q=title:Beautiful AND year:>=2012 #查询title中包含Beautiful且电影上映时间
在2012年之后的所有的数据
GET movies/_search?q=year:>=2018 #查询2018年之后上映的电影
GET movies/_search?q=year:(>=2012 AND <2018) #查询在2012到2017年上映的电影
GET movies/_search?q=year:{2015 TO 2017] #查询2016年到2017年上映的电影,必须以 ] 结尾
GET movies/_search?q=title:Min?x # ?代表一个字母
GET movies/_search?q=title:Min* # 查询title中包含以 Min开头的字母的电影
# 查看elaticsearch的状态
GET _cat/health
# 查看有哪些索引 (6.x版本需要后面加?v )
GET _cat/indices?v
#创建test6
PUT /test6
{
  "mappings": {
    "properties": {
      "name":{
        "type":"text"
      },
      "age":{
        "type": "long"
      },
      "birthday":{
        "type": "date"
      }
    }
  }
}
# 查看mapping 方法一
GET /test6
# 查看mapping 方法二
GET /test6/_mapping?pretty
# 删除索引
DELETE test6
# 同时删除多个索引
DELETE fluentd-20210319,fluentd-20210419
DELETE fluentd-20210412/access_log/ZCbUxHgBHgZJ0U05KD3A
# 分词器
GET _analyze
{
  "analyzer":"ik_smart",
  "text": "我是中国人"
}
GET _analyze
{
  "analyzer":"ik_max_word",
  "text": "我是中国人"
}
GET _analyze
{
  "analyzer":"ik_max_word",
  "text": "狂神说java"
}
#创建test3
PUT /test3
{
  "mappings": {
    "properties": {
      "name":{
        "type":"text"
      },
      "age":{
        "type": "long"
      },
      "birthday":{
        "type": "date"
      }
    }
  }
}
GET test3
PUT /test3/_doc/3
{
    "name":"王五",
    "age":22,
    "birth":"1990-01-06"
}
# test里的总数
GET test3/_count
# 查所有的数据
GET test3/_search
# 查id为1的数据
GET test3/_doc/1
# 删除指定id为1的记录
DELETE test3/_doc/1
GET test3
POST /test3/_doc/1/_update
{
  "doc":{
    "name":"fong"
  }
}
# es 7写法
POST /test3/_update/1
{
  "doc":{
    "name":"fong"
  }
}
GET /test3/_doc/1
DELETE /test1
DELETE /test2
PUT /haima/user/1
{
     "name":"狂神说123",
     "age":13,
     "desc":"我是描述",
     "tags":["技术宅","温暖","直男"]
}
GET /haima
DELETE /haima
GET /haima/_search
GET /haima/user/1
PUT /haima/user/2
{
     "name":"张三说",
     "age":22,
     "desc":"我是描述22",
     "tags":["技术宅","温暖","直男"]
}
PUT /haima/user/3
{
     "name":"李四说",
     "age":33,
     "desc":"我是描述33",
     "tags":["技术宅","温暖","直男"]
}
PUT /haima/user/6
{
     "name":"狂神说",
     "age":27,
     "desc":"我是描述66",
     "tags":["java","mysql","redis"]
}
GET /haima/user/_search?q=name:李四
GET /haima/user/_search
{
  "query": {
    "match": {
      "name": "李四"
    }
  },
  "_source":["name","age"]
}
GET /haima/user/_search
{
  "query": {
    "match": {
      "name": "李四"
    }
  },
  "_source":{"includes":["name","age"]}
}
GET /haima/user/_search
{
  "query": {
    "match": {
      "name": "说"
    }
  },
  "sort":{
    "age":{
      "order":"asc"
    }
  },
  "from":0,
  "size":2
}
GET /haima/user/_search
{
  "query":{
    "bool": {
      "must": [
        {
          "match": {
            "name": "说"
          }
        },{
          "match": {
            "age": "44"
          }
        }
      ]
    }
  }
}
GET /haima/user/_search
{
  "query":{
    "bool": {
      "should": [
        {
          "match": {
            "name": "王五"
          }
        },{
          "match": {
            "age": "44"
          }
        }
      ]
    }
  }
}
GET /haima/user/_search
{
  "query":{
    "bool": {
      "must": [
        {
          "match": {
            "name": "王五"
          }
        }
      ],
      "filter": {
        "range": {
          "age": {
            "gte": 10,
            "lte": 50
          }
        }
      }
    }
  }
}
GET /haima/user/_search
{
  "query":{
    "bool": {
      "must": [
        {
          "match": {
            "tags": "技术 女"
          }
        }
      ]
    }
  }
}
GET _analyze
{
  "analyzer":"standard",
  "text":"张三说"
}
GET _analyze
{
  "analyzer":"keyword",
  "text":"狂神说"
}
GET /employee/_search
{}
GET /employee/_search
{
  "size": 0,
  "aggs": {
    "job_info": {
      "terms": {
        "field": "job",
        "size": 9999
      }
    }
  }
}
GET /employee/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "job": "java"
          }
        }
      ]
    }
  },
  "size": 0,
  "aggs": {
    "aggs_job": {
      "terms": {
        "field": "job",
        "size": 10
      },
      "aggs": {
        "aggs_job_gender": {
          "terms": {
            "field": "gender",
            "size": 10
          }
        }
      }
    },
    "aggs_gender":{
      "terms": {
        "field": "gender",
        "size": 10
      }
    }
  }
}
按时间段查
{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "lastupdatetime": {
              "gt": "2021-08-16 00:00:00",
              "lt": "2021-08-17 00:00:00"
            }
          }
        }
      ],
      "must_not": [],
      "should": []
    }
  },
  "_source": [
    "port"
  ],
  "from": 0,
  "size": 9999,
  "sort": [],
  "aggs": {}
}
更多文章:
es常用操作手册
https://blog.csdn.net/qqsilhonette/article/details/105447921
05 elasticsearch学习笔记-基本CRUD的更多相关文章
- Elasticsearch学习笔记一
		
Elasticsearch Elasticsearch(以下简称ES)是一款Java语言开发的基于Lucene的高效全文搜索引擎.它提供了一个分布式多用户能力的基于RESTful web接口的全文搜索 ...
 - elasticsearch学习笔记——相关插件和使用场景
		
logstash-input-jdbc学习 ES(elasticsearch缩写)的一大优点就是开源,插件众多.所以扩展起来非常的方便,这也造成了它的生态系统越来越强大.这种开源分享的思想真是与天朝格 ...
 - ElasticSearch学习笔记(超详细)
		
文章目录 初识ElasticSearch 什么是ElasticSearch ElasticSearch特点 ElasticSearch用途 ElasticSearch底层实现 ElasticSearc ...
 - 【原】无脑操作:ElasticSearch学习笔记(01)
		
开篇来自于经典的“保安的哲学三问”(你是谁,在哪儿,要干嘛) 问题一.ElasticSearch是什么?有什么用处? 答:截至2018年12月28日,从ElasticSearch官网(https:// ...
 - 【ES】elasticsearch学习笔记
		
ES学习 1 优势 1.1 简单 1.1.1 相比Solor配置部署等非常简单 1.2 高效 1.2.1 ES使用Netty作为内部RPC框架,Solor使用Jetty 1.3 插件化 1.3.1 E ...
 - 031 Spring Data Elasticsearch学习笔记---重点掌握第5节高级查询和第6节聚合部分
		
Elasticsearch提供的Java客户端有一些不太方便的地方: 很多地方需要拼接Json字符串,在java中拼接字符串有多恐怖你应该懂的 需要自己把对象序列化为json存储 查询到结果也需要自己 ...
 - ElasticSearch学习笔记-01 简介、安装、配置与核心概念
		
一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进 ...
 - Entity Framework学习笔记(三)----CRUD(2)
		
请注明转载地址:http://www.cnblogs.com/arhat 昨天晚上老魏配的机器终于到了,可是拿回来之后什么都组装好了,唯独差一个非常重要的组件"电源线",老魏那个汗 ...
 - Entity Framework学习笔记(二)----CRUD(1)
		
请注明转载地址:http://www.cnblogs.com/arhat 这篇文章老魏和大家分享一下Entity Framework的CRUD操作,在这之前呢,老魏先说一下老魏对EF的一个整体的认识, ...
 - Elasticsearch学习笔记
		
Why Elasticsearch? 由于需要提升项目的搜索质量,最近研究了一下Elasticsearch,一款非常优秀的分布式搜索程序.最开始的一些笔记放到github,这里只是归纳总结一下. 首先 ...
 
随机推荐
- C++设计模式 - 代理模式(Proxy)
			
接口隔离模式 在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题.甚至根本无法实现.采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案. 典型模式 Facade P ...
 - MySQL联结
			
创建联结 mysql> SELECT vend_name,prod_name,prod_price FROM vendors,products WHERE vendors.vend_id=pro ...
 - JDK9的新特性:JPMS模块化
			
目录 简介 JDK9中模块的实现 JDK中的module 创建自己的module 深入理解module-info transitive static exports to open pacakge p ...
 - OpenHarmony创新赛 | 赛事宣讲会日期重磅官宣!为你带来超详尽的赛事攻略
			
最近接到很多小伙伴私信提问,比如如何报名开放原子开源大赛OpenAtom OpenHarmony(简称:"OpenHarmony")创新赛?有哪些赛题可以报名参赛?现在,赛事宣 ...
 - Qt6安装
			
*:Qt现在基本都是在线安装了,但是下载的速度特别慢,所以此次记录下如何提速,快速安装 一.在线安装器下载 我用的这个(非官网):https://mirrors.tuna.tsinghua.edu.c ...
 - std::thread 五:打包任务(packaged_task)
			
#include <iostream> #include <thread> #include <mutex> #include <list> #incl ...
 - 56.5K star的gpt4free开源项目到底真的假的?
			
前言 这个项目是我很早之前就star,只是当时觉得有点天真,怎么会有那么多免费的好事情呢?然后就在清明节前夕,OpenAI 开放了免登录即可使用GPT-3.5的模型,那么势必很快就有了免费使用GPT- ...
 - HarmonyOS自动化测试框架—Hypium
			
原文:https://mp.weixin.qq.com/s/nb5txfDcmGn_VZJXRPEYUQ,点击链接查看更多技术内容. 应用开发过程中,要确保应用的功能和界面能满足预期,往往需要通过测试 ...
 - This beta version of Typora is expired, please download and install a newer version. 实测最简单有效的方案
			
This beta version of Typora is expired, please download and install a newer version. 实测最简单有效的方案 一.问题 ...
 - Go语言打印九九乘法表,这是整洁代码范例
			
Go语言打印九九乘法表,这是整洁代码范例 / Go 语言输出九九乘法表 / 九九乘法表是我们学习编程时的一项基本练习,它看似简单,通过实现输出九九乘法表可以加深对 Go 语言循环结构的理解和运用. 本 ...