ElasticSearch学习笔记 | Match_ALL进阶检索
发布日期:2021-07-28 08:29:48
浏览次数:2
分类:技术文章
本文共 2700 字,大约阅读时间需要 9 分钟。
一、导入测试数据
ElasticSearch官方为我们准备了一部分测试数据供调试使用,我们可以在安装完成Kinaba后进行数据导入处理1. 获取数据
打开 https://github.com/elastic/elasticsearch/blob/master/docs/src/test/resources/accounts.json复制全部数据(点击 Raw 按钮,新页面 Ctrl + A)
2. 执行批量添加
打开 Kibana :xxxx:5601/app/dev_tools#/console,第一行输入下面第一行,第二行开始粘贴测试数据,点击 ▶️ 运行POST /bank/account/_bulk
{"index":{"_id":"1"}} {"account_number":1,"balance":39225,"f....(测试数据) 二、ES支持两种基本方式检索 一个是通过使用 REST request URI发送搜索参数(uri+检索参数)另一个是通过使用 REST request body来发送它们(uri请求体)
例子1:
GET bank/_search?q=*&sort=account_number:asc
返回结果:结果并不会返回所有数据而是返回10条数据,类似于分页
{
"took" : 43, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 1000, "relation" : "eq" }, "max_score" : null, "hits" : [ { "_index" : "bank", "_type" : "account", "_id" : "0", "_score" : null, "_source" : { "account_number" : 0, "balance" : 16623, "firstname" : "Bradshaw", "lastname" : "Mckenzie", "age" : 29, "gender" : "F", "address" : "244 Columbus Place", "employer" : "Euron", "email" : "bradshawmckenzie@euron.com", "city" : "Hobucken", "state" : "CO" }, "sort" : [ 0 ] }, ... 例子2:先按照account_number进行降序,如果相同按照balance进行降序
GET bank/_search
{ "query": {"match_all": {}}, "sort": [ { "account_number": "desc" }, { "balance": "desc" } ] } 返回结果:{
"took" : 12, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 1000, "relation" : "eq" }, "max_score" : null, "hits" : [ { "_index" : "bank", "_type" : "account", "_id" : "999", "_score" : null, "_source" : { "account_number" : 999, "balance" : 6087, "firstname" : "Dorothy", ... 三、Query DSL 1. 基本语法格式 ElasticSearch提供了一个可以执行查询的son风的DSL(domain-specific language领域特定语言)。这个被称为 Query DSL。该查询语言非常全面,并且刚开始的时候感觉有点复杂,真正学好它的方法是从一些基础的示例开始的。一个查询语句的典型结构:
{
QUERY_NAME:{ ARGUMENT:VALUE, ARGUMENT:VALUE... } } 例如查询所有:GET bank/_search
{ "query": { "match_all": {} } } 如果是针对某个字段查询,查询结构:{
QUERY_NAME:{ FIELD NAME:{ ARGUMENI:VALUE, ARGUMENT:VALUE... } } } 例如按照 balance 降序查询:GET bank/_search
{ "query": { "match_all": {} }, "sort": [ { "balance": { "order": "desc" } } ] } 其实还有一种简单的表达形式,效果相同"balance": {
"order": "desc" } 可以简写为: "balance": "desc" query定义如何查询 match_all 查询类型【代表查询所有的所有】,es中可以在 query 中组合非常多的查询类型完成复杂查询 除了 query参数之外,我们也可以传递其它的参数以改变查询结果。如sort,size from + size限定,完成分页功能 sort排序,多字段排序,会在前序字段相等时后续字内部排序,否则以前序为准 分页查询且只查询部分属性的例子:GET bank/_search
{ "query": { "match_all": {} }, "sort": [ { "balance": { "order": "desc" } } ], "from": 0, "size": 5, "_source": ["balance", "account_number"] }————————————————
版权声明:本文为CSDN博主「北鹤M」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_20051535/article/details/113242821转载地址:https://blog.csdn.net/sinat_17775997/article/details/116118452 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月06日 23时11分56秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
搭建 Linux C 编程环境 --- 使用配置好的Ubuntu系统2
2019-04-28
linux项目 -- 图书管理系统(链表版)
2019-04-28
linux项目 --- 图书管理系统(数据库版)
2019-04-28
airplay协议开发第1部(搭建测试环境)
2019-04-28
airplay协议开发第2部(介绍接口、视频、音频的操作)
2019-04-28
airplay协议开发第3部(mdnsd注册airplay服务)
2019-04-28
内存中数据存储的格式
2019-04-28
二进制、十进制、十六进制换算
2019-04-28
有符号和无符号数分析
2019-04-28
ASCII码
2019-04-28
linux系统操作常用基础命令
2019-04-28
计算CP、CR、CF1、OP、OR、OF1和mAP的top-3评价指标
2019-04-28
python将嵌套数组转为单层数组
2019-04-28
pytorch打印自定义网络的每层的名称
2019-04-28
解决ubantu只能读取U盘文件,不能将文件复制到U盘里面
2019-04-28
MS-COCO2014数据集标签互译
2019-04-28