视频教程

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的更多相关文章

  1. Elasticsearch学习笔记一

    Elasticsearch Elasticsearch(以下简称ES)是一款Java语言开发的基于Lucene的高效全文搜索引擎.它提供了一个分布式多用户能力的基于RESTful web接口的全文搜索 ...

  2. elasticsearch学习笔记——相关插件和使用场景

    logstash-input-jdbc学习 ES(elasticsearch缩写)的一大优点就是开源,插件众多.所以扩展起来非常的方便,这也造成了它的生态系统越来越强大.这种开源分享的思想真是与天朝格 ...

  3. ElasticSearch学习笔记(超详细)

    文章目录 初识ElasticSearch 什么是ElasticSearch ElasticSearch特点 ElasticSearch用途 ElasticSearch底层实现 ElasticSearc ...

  4. 【原】无脑操作:ElasticSearch学习笔记(01)

    开篇来自于经典的“保安的哲学三问”(你是谁,在哪儿,要干嘛) 问题一.ElasticSearch是什么?有什么用处? 答:截至2018年12月28日,从ElasticSearch官网(https:// ...

  5. 【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 ...

  6. 031 Spring Data Elasticsearch学习笔记---重点掌握第5节高级查询和第6节聚合部分

    Elasticsearch提供的Java客户端有一些不太方便的地方: 很多地方需要拼接Json字符串,在java中拼接字符串有多恐怖你应该懂的 需要自己把对象序列化为json存储 查询到结果也需要自己 ...

  7. ElasticSearch学习笔记-01 简介、安装、配置与核心概念

    一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进 ...

  8. Entity Framework学习笔记(三)----CRUD(2)

    请注明转载地址:http://www.cnblogs.com/arhat 昨天晚上老魏配的机器终于到了,可是拿回来之后什么都组装好了,唯独差一个非常重要的组件"电源线",老魏那个汗 ...

  9. Entity Framework学习笔记(二)----CRUD(1)

    请注明转载地址:http://www.cnblogs.com/arhat 这篇文章老魏和大家分享一下Entity Framework的CRUD操作,在这之前呢,老魏先说一下老魏对EF的一个整体的认识, ...

  10. Elasticsearch学习笔记

    Why Elasticsearch? 由于需要提升项目的搜索质量,最近研究了一下Elasticsearch,一款非常优秀的分布式搜索程序.最开始的一些笔记放到github,这里只是归纳总结一下. 首先 ...

随机推荐

  1. 基于rv1126 rkmeida 一路多出 原理

    基于rv1126 rkmeida 一路多出的坑 首先说要的是介绍一下rkmedia 相关内容 ​ RKMedia提供了一种媒体处理方案,可支持应用软件快速开发.RKMedia在各模块基础API上做进一 ...

  2. IDEA怎么添加类注释和方法注释模板

    IDEA设置自动生成模板类和方法注释 一.模板类注释 在右侧粘贴如下代码: /** *@BelongsProject: ${PROJECT_NAME} *@BelongsPackage: ${PACK ...

  3. 使用POI、JavaCsv工具读取excel文件(*.xls , *.xlsx , *.csv)存入MySQL数据库

    首先进行maven的配置:导入相关依赖 1 <dependency> 2 <groupId>org.apache.poi</groupId> 3 <artif ...

  4. HTTP编码和解码与基本认证

    咱们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流.那么在这二者之间的转换规则就须要一个统一的标准,不然把计算机上文档就乱码了:因而为了实现转换标准,各类字符集标准 ...

  5. 9 CSS背景属性

    CSS 背景属性 1. background-color(背景颜色) 页面的背景颜色有四种属性值表示,分别是transparent(透明),RGB十进制颜色表示,十六进制颜色表示和颜色单词表示. 属性 ...

  6. #2-SAT,平面图#洛谷 3209 [HNOI2010] 平面图判定

    题目传送门 分析 首先一张图是平面图的必要条件为 \(m\leq 3*n-6\), 然后考虑到这题的图存在哈密尔顿回路,也就是说非环边因为跨立形成奇环即为无解 那么直接拆点跑2-SAT就可以了 代码 ...

  7. pip提示升级pip版本

    今天在进行pip安装库的时候发现下面出现一段黄色的字体,如下图: 自由翻译: 大概意思就是说我现在安装的pip的版本是 20.0.2,最新版本是 20.1,希望我可以更新到最新的版本,并告诉了我怎么安 ...

  8. Telnet qsnctfwp

    Windows 安装 Telnet 在控制面板的程序和功能中选择打开或关闭Windows功能 启用 Telnet 客户端并单击确认退出 启动终端,输入命令 telnet 打开 Telnet 客户端 在 ...

  9. 《c#高级编程》第5章C#5.0中的更改(十一)——字符串插值

    在 C# 5 中,引入了字符串插值(string interpolation)语法,它提供了一种简单.直观的方式来将变量的值嵌入到字符串中.在以前的版本中,我们需要使用字符串格式化功能来实现这个目的, ...

  10. 如何在 Anolis 8上部署 Nydus 镜像加速方案?

    简介: 手把手教你在 Anolis OS 上部署 Nydus! 在上一篇文章中详细介绍Anolis OS 是首个原生支持镜像加速 Linux 内核,Nydus 镜像加速服务重新优化了现有的 OCIv1 ...