ElasticSearch + kibana 基础查询文档大全
ES REST 风格说明
一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁 ,更有层次,更易于实现缓存等机制。
目录
- ES REST 风格说明
- 一、ES 索引操作
- 1. 创建一个索引
- 2. 指定字段类型
- 3. 获取具体的索引规则
- 4. 获取elasticsearch 索引情况!
- 5. 修改索引 POST
- 6. 删除索引
- 二、ES 索引操作
- 1. 基本操作
- 2. POST 与 PUT 区别
- 3. 复杂查询 ( 排序、分页、高亮、模糊查询、标准查询!)
- 4. 排序 DES降序 ASC升序
- 5. 数据分页
- 6. 多条件查询 (精确查询、多值匹配、高亮查询)
- 多条件查询
- 精确查询
- 多个值匹配精确查询
- 高亮查询
一、ES 索引操作
1. 创建一个索引
写法过时
PUT /索引名/~类型名~/文档id
{请求体}
# PUT 创建命令 test1 索引 type1 类型 1 id
PUT test1/type1/1
{"name": "huang","age": 28
}
2. 指定字段类型
- 字符串类型
text
keyword
不可分割 - 数值类型
long
integer
short
byte
double
float
half_float
scaled
float
- 日期类型
date
- 布尔值类型
boolean
- 二进制类型
binary
等等…
指定字段的类型(创建规则)
PUT test2
{"mappings": {"properties": {"name": {"type": "text"},"age": {"type": "integer"},"birthday": {"type": "date"}}}
}
3. 获取具体的索引规则
GET testdb
展示结果如下:
4. 获取elasticsearch 索引情况!
通过 GET _cat/indices
可以获得 es
当前很多信息
yellow open test2 m9MASLOYS4ew8ak4vgajgg 1 1 0 0 283b 283b
yellow open test3 tOBTzR_MS3WKgXRHFqTfrQ 1 1 5 0 18.9kb 18.9kb
green open .kibana_task_manager_1 DLToH4QiQAqw_BwNwnbYJw 1 0 2 0 41.7kb 41.7kb
green open kibana_sample_data_ecommerce NNPrBUpmQTOH_MoiCFombw 1 0 4675 0 4.8mb 4.8mb
yellow open testdb 4txHUmYVTuq1-6_BK1gEqQ 1 1 3 0 7.2kb 7.2kb
green open .apm-agent-configuration a8Ut8362QH6lOccv7Mv_GQ 1 0 0 0 283b 283b
yellow open test1 7-JYTnJvRzGMy3UtVC_GpQ 1 1 1 0 3.7kb 3.7kb
green open .kibana_1 _SzMird5TtGgouxdnJIzWA 1 0 74 11 989.3kb 989.3kb
5. 修改索引 POST
POST /test3/_doc/5/_update
{"doc":{"age": 23}
}
展示结果如下:
{"_index" : "test3","_type" : "_doc","_id" : "5","_version" : 3,"result" : "updated","_shards" : {"total" : 2,"successful" : 1,"failed" : 0},"_seq_no" : 10,"_primary_term" : 1
}
6. 删除索引
通过DELETE命令删除,根据你的请求来判断是删除索引还是删除文档记录!
(1)删除索引
DELETE damiao
结果展示如下:
{"acknowledged" : true
}
(2)删除记录
DELETE /damiao/_doc/1
结果展示如下:
{"_index" : "damiao","_type" : "_doc","_id" : "1","_version" : 2,"result" : "deleted","_shards" : {"total" : 2,"successful" : 1,"failed" : 0},"_seq_no" : 1,"_primary_term" : 1
}
二、ES 索引操作
1. 基本操作
# 添加数据
put /kuangshen/_doc/1
{"name": "狂神说","age": 23,"desc": "一顿操作猛如虎,一看工资2500","tags": ["码农", "技术宅", "直男"]
}put /kuangshen/_doc/2
{"name": "张三","age": 28,"desc": "法外狂徒","tags": ["旅游", "渣男", "交友"]
}put /kuangshen/_doc/3
{"name": "李四","age": 30,"desc": "不知道怎么描述","tags": ["旅游", "靓女", "唱歌"]
}
2. POST 与 PUT 区别
put 与 post update(修改指定项)的差别
put 其他项置空
post 只修改指定项
POST /damiao/_doc/1/_update
{"doc":{"name":"大喵课堂123"}
}
输出结果如下:
{"_index" : "damiao","_type" : "_doc","_id" : "1","_version" : 3,"result" : "updated","_shards" : {"total" : 2,"successful" : 1,"failed" : 0},"_seq_no" : 4,"_primary_term" : 1
}
3. 复杂查询 ( 排序、分页、高亮、模糊查询、标准查询!)
kibana 里查询的参数体使用Json结构
GET damiao/_search
{"query": {"match": {"name": "大喵"}},"_source": ["name","age"]
}
输出结果如下:
{"took" : 4,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 1,"relation" : "eq"},"max_score" : 0.5753642,"hits" : [{"_index" : "damiao","_type" : "_doc","_id" : "1","_score" : 0.5753642,"_source" : {"name" : "大喵课堂123"}}]}
}
4. 排序 DES降序 ASC升序
GET damiao/_search
{"query": {"match": {"name": "大喵"}},"sort": [{"age": {"order": "desc"}}]
}
输出结果如下:
{"took" : 2,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 2,"relation" : "eq"},"max_score" : null,"hits" : [{"_index" : "damiao","_type" : "_doc","_id" : "2","_score" : null,"_source" : {"name" : "喵喵课堂","age" : 18,"birth" : "2005-06-15"},"sort" : [18]},{"_index" : "damiao","_type" : "_doc","_id" : "1","_score" : null,"_source" : {"doc" : {"name" : "大喵课堂123"},"name" : "大喵课堂555555","birth" : "2003-06-15","age" : 15},"sort" : [15]}]}
}
5. 数据分页
数据下标还是从0开始的,和学的所有数据结构是一样的!
GET /test3/_doc/_search
{"query":{"bool":{"must": [{"match":{"name":"超人"}}]}},"from": 0, # 数据下标"size": 5 # 每页展示条数
}
6. 多条件查询 (精确查询、多值匹配、高亮查询)
- 多条件查询
must
== and - 多条件查询
should
== or - 多条件查询
must_not
== not
GET kuangshen/_search
{"query": {"bool": {"must": [{"match": {"name": "狂神说"}},{"match": {"age": "23"}}]}}
}
- 过滤查询1 age > 24
gt
greater than 大于gte
>=
(e equal) - 过滤器2 22<age<30
lt
less than 小于lte
<=
(e equal)
GET kuangshen/_search
{"query": {"bool": {"must": [{"match": {"name": "狂神说"}}],"filter": {"range": {"age": {"gte": 10"lte": 30} /* 10 <= age <= 30 */}}}}
}
多条件查询
GET kuangshen/_search
{"query": {"match": {"tags": "男 技术"}}
}
精确查询
term
查询是直接通过倒排索引指定的词条进程精确查找的!
关于分词:
term
,直接查询精确的
match
,会使用分词器解析
mapping介绍:https://www.knowledgedict.com/tutorial/elasticsearch-index-mapping.html
# 创建索引 testdb
PUT testdb
{"mappings": {"properties": {"name":{"type": "text"},"desc":{"type": "keyword"}}}
}# 创建数据
PUT /testdb/_doc/1
{"name": "大喵课堂 damiao classroom","desc": "大喵课堂 是一个非常优秀的网易云学院课堂"
}GET _analyze
{"analyzer": "keyword","text": "大喵课堂 classroom"
}GET _analyze
{"analyzer": "standard","text": "大喵课堂 classroom"
}# 精确查询
GET testdb/_search
{"query":{"term": {"name": "喵"}}
}
GET testdb/_search
{"query":{"term": {"desc": "大喵课堂 是一个非常优秀的网易云学院课堂"}}
}
/*keyword 字段不能被分词器解析*/
多个值匹配精确查询
# 创建数据 模拟查询
PUT testdb/_doc/3
{"t1":"22","t2":"2022-04-06"
}
PUT testdb/_doc/4
{"t1":"33","t2":"2022-04-07"
}GET testdb/_search
{"query":{"bool": {"should": [{"term": {"t1": "22"}},{"term": {"t1": "33"}}]}}
}
输出结果如下:
{"took" : 1,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 2,"relation" : "eq"},"max_score" : 0.6931471,"hits" : [{"_index" : "testdb","_type" : "_doc","_id" : "3","_score" : 0.6931471,"_source" : {"t1" : "22","t2" : "2022-04-06"}},{"_index" : "testdb","_type" : "_doc","_id" : "4","_score" : 0.6931471,"_source" : {"t1" : "33","t2" : "2022-04-07"}}]}
}
高亮查询
# 高亮查询
GET test3/_search
{"query": {"match": {"name": "大喵"}},"highlight": {"pre_tags": "<em style='color:red;'>", "post_tags": "</em>", "fields": {"name":{}}}
}
输出结果如下:
{"took" : 8,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 1,"relation" : "eq"},"max_score" : 2.677347,"hits" : [{"_index" : "test3","_type" : "_doc","_id" : "1","_score" : 2.677347,"_source" : {"name" : "大喵课堂123","age" : 23,"birth" : "1997-01-05"},"highlight" : {"name" : ["<em style='color:red;'>大</em><em style='color:red;'>喵</em>课堂123"]}}]}
}
ElasticSearch + kibana 基础查询文档大全相关推荐
- ElasticSearch入门 第五篇:使用C#查询文档
网址:http://www.cnblogs.com/ljhdo/p/4550135.html 这是ElasticSearch 2.4 版本系列的第五篇: ElasticSearch入门 第一篇:Win ...
- elasticsearch查询文档数量
查询文档数量时很常见的操作,一般可以直接使用count获取文档数,但是获取到数量信息,在[分页]应用中,意味着需要查询分页然后再查询总数. 有另一种方法,可以让我们在一次查询中获取分页数据并得到总量. ...
- days05-DSL查询文档以及对搜索结果进行处理
一. DSL查询文档 1. DSL查询分类 DSL Query的分类 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询.常见的查询类 ...
- 股票期货化数据文档大全覆盖国内6大易的历史数据和实时行情
原 股票期货量化数据文档大全,覆盖国内6大交易所的历史数据和实时行情 一.基础数据 目前掘金支持上交所, 深交所的股票, 中金所, 上期所, 大商所, 郑商所的期货, 交易标的查询. 可使用get_i ...
- 股票期货量化数据文档大全覆盖国内6大交易的史数据和实时行情
原 股票期货量化数据文档大全,覆盖国内6大交易所的历史数据和实时行情 一.基础数据 目前掘金支持上交所, 深交所的股票, 中金所, 上期所, 大商所, 郑商所的期货, 交易标的查询. 可使用get_i ...
- elasticsearch 第五篇(文档操作接口)
INDEX API 示例: 1 2 3 4 5 PUT /test/user/1 { "name": "silence", "age": 2 ...
- 详细描述一下 Elasticsearch 更新和删除文档的过程。
1.删除和更新也都是写操作,但是 Elasticsearch 中的文档是不可变的,因此不能被删除或者改动以展示其变更. 2.磁盘上的每个段都有一个相应的.del 文件.当删除请求发送后,文档并没有真的 ...
- 微服务11_ES:DSL/RestClient查询文档
微服务11_ES:DSL/RestClient查询文档 一.DSL查询文档 1.DSL Query的分类 1.全文检索查询 match查询示例: multi_match查询示例: 2.精准查询 ter ...
- ElasticSearch修改和删除文档
ElasticSearch修改和删除文档 修改文档方式一:使用prepareUpdate,prepareIndex两者选其一皆可 client.prepareUpdate("blog2&qu ...
- 连载三:Oracle升级文档大全
(共33篇干货文章,建议收藏并在PC端打开) Oracle 11203->11204.6小版本物理升级方案 https://www.modb.pro/doc/190 OEM CC 12.1.0. ...
最新文章
- 【组队学习】【27期】动手学数据分析
- 钱海丰:农药污染下的土壤微生态响应与风险预测​(今晚7点半)
- c语言编程能控制热风炉,利用C语言设计热风炉悬链线拱顶研究.pdf
- 关于报表在移动端展现需你需要知道哪些?
- python web界面整合 tail_如何使用Python Tornado在HTTP上实现“ tail”?
- pythonresponse对象的属性_Scrapy中response属性以及内容提取
- 网页 添加QQ/MSN/旺旺 在线聊天代码
- 需要多长时间达到一个本科毕业生刚毕业的水平。
- sae 微信 java web_[1] 微信公众号与sae的web应用之间的配置
- 前端性能优化的七大手段
- 分层结构的生活例子_详解软件分层架构设计、工作原理、实例以及具体架构
- win10+tensorflow-gpu+pycharm+anaconda...的成功安装,顺利在spyder import tensorflow
- 电信IoT平台对接及使用
- 3点钟无眠区块链:96小时聊天内容精华全记录
- 郭德纲被新浪删掉的博文《人在江湖》,骂功了得
- 英语词根记忆法(11)
- 阵列卡直通模式和raid模式_DNF:希洛克Raid攻略,一不小心就被全屏秒杀
- Unity Live2D 让模型自己动起来 Harmonic Motion Controller 学习使用
- 宝藏又小众的东方行走rpg制作大师素材网站分享
- Xcode6中如何设置兼容iOS5?