视频教程

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. #模型转换#洛谷 6075 [JSOI2015]子集选取

    题目 分析 \(n\)个元素可以独立操作,考虑单个元素, 则选不选择一定有一道分界线, 而这条分界线正好要走\(k\)次, 每次可以选择向上走或向右走,所以为\(2^k\), 由于\(n\)个元素相互 ...

  2. 8. Linear Transformations

    8.1 Linear Requires Keys: A linear transformation T takes vectors v to vectors T(v). Linearity requi ...

  3. 持续构建行业影响力|HarmonyOS SDK荣膺年度“技术卓越”奖项

    自2023年9月华为宣布鸿蒙原生应用全面启动以来,HarmonyOS SDK通过将HarmonyOS系统级能力对外开放,支撑开发者高效打造更纯净.更智能.更精致.更易用的鸿蒙原生应用,和开发者共同成长 ...

  4. 最新CAMX-python融合技术应用与大气污染来源解析方法

    大气污染问题既是局部.当地的,也是区域的,甚至是全球的.本地的污染物排放除了对当地造成严重影响外,同时还会在动力输送作用下,极大地影响下风向地区的大气环境状况.数值模式模拟是分析大气污染物时空分布和成 ...

  5. openGauss中的sequence跟Oracle的sequence有什么区别?

    openGauss 中的 sequence 跟 Oracle 的 sequence 有什么区别? openGauss 中也提供了 sequence 序列功能,使用 Oracle 的用户应该都非常喜欢使 ...

  6. js es6 map weakmap

    前言 这里介绍一些map和weakmap的一些属性和他们不同之处. 正文 map JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这 ...

  7. 百度AIPNLP 文本相似度 文本审核

    效果不如有监督的bert文本相似度好 from aip import AipNlp APP_ID = "22216281" APT_KEY = "foEeYauuvnqW ...

  8. 在RockyLinux 9.3环境中采用RPM模式部署Oracle 19C

    在RockyLinux 9.3环境中采用RPM模式部署Oracle 19C 用途 在开发数据库系统时,可以验证功能是否与Oracle的表现一致,验证正确性和兼容性 限制 虚拟机安装,CPU 2*4 内 ...

  9. 【笔记】oracle INTERSECT指令&邮箱的正则匹配&trim()函数

    [笔记]oracle INTERSECT 和 UNION 指令类似, INTERSECT 也是对两个 SQL 语句所产生的结果做处理的. 不同的地方是, UNION 基本上是一个 OR (如果这个值存 ...

  10. 力扣8(java)-字符串转整数(atoi)(中等)

    题目: 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数). 函数 myAtoi(string s) 的算法 ...