Elasticsearch的高级查询

news2024/9/23 9:27:10

目录

一、条件查询

1、单条件

1)路由查询

 2)body体查询

2、多条件查询

1)and---must

 2)or---should

3)范围---filter

3、全文检索、完全匹配、高亮显示

 二、聚合查询

1、分组

2、求平均值


一、条件查询

1、单条件

1)路由查询

方法:get

url :http://localhost:9200/wenzhang/_search?q=name:蜡笔

介绍:q后面跟的是字段名,冒号后面是要搜索的关键字 

 2)body体查询

方法:get

url:http://localhost:9200/wenzhang/_search

{"query":{"match":{"name":"蜡笔"}}}

 全量查询

{"query":{"match_all":{}}}

分页查询

{"query":
    {
        "match_all":{

        } 
    },
    "from":0,
    "size":3
}

from:游标起始位 size:查询量

控制显示字段

{"query":
    {
        "match_all":{

        } 
    },
    "from":0,
    "size":3,
    "_source" : ["name"]
}

排序

{"query":
    {
        "match_all":{} 
    },
    "from":0,
    "size":3,
    "sort":{
        "age":{
            "order" : "desc"
        }
    }
}

2、多条件查询

方法:get

url:http://localhost:9200/wenzhang/_search

1)and---must

{
	"query":{
		"bool":{
            "must":[
                {
                    "match":{
                        "name":"蜡笔"
                    }
                },
                {
                    "match":{
                        "age":6
                    }
                }
            ]
		}
	}
}

 2)or---should

{
	"query":{
		"bool":{
            "should":[
                {
                    "match":{
                        "name":"蜡笔"
                    }
                },
                {
                    "match":{
                        "name":"海绵宝宝"
                    }
                }
            ]
		}
	}
}

这样海绵宝宝和蜡笔小新都被查出来了

3)范围---filter

{
	"query":{
		"bool":{
            "must":[
                {
                    "match":{
                        "name":"蜡笔"
                    }
                }
            ],
            "filter" : {
                "range" : {
                    "age":{
                        "gt":5
                    }
                }
            }
		}
	}
}

这个时候搜索的就是大于5岁的蜡笔小新,如果把上面的must改成should,那会把8岁的海绵宝宝也搜出来,可见should也作用到了filter上。

3、全文检索、完全匹配、高亮显示

全文检索match,上面我们查询都是用的这个关键字,但是有个特点,name字段写"蜡笔"和"蜡小笔"都能匹配到数据,原因是es在底层做了拆词,把每个字做了倒排索引,当我们查询的时候会把每个字都拆开全文检索匹配,这样就返回了所有数据。

这不是我们想要的结果,我们就想要蜡笔小新怎么办。有办法,完全匹配。

完全匹配match_phrase,这样匹配到的都是以我们输入的name里的关键字做的匹配。

高亮显示:highlight,查询过程加入此关键字就可以把匹配到的值高亮显示。

{
	"query":{
		"bool":{
            "must":[
                {
                    "match_phrase":{
                        "name":"蜡笔"
                    }
                }
            ]
		}
	},
    "highlight":{
        "fields" : {
            "name":{}
        }
    }
}

 二、聚合查询

方法:get

url:http://localhost:9200/wenzhang/_search

1、分组

{
    "aggs" : {
        "age_group" : {
            "terms" : {
                "field" : "age"
            }
        }
    },
    "size" : 0
}

aggs:聚合操作

age_group:自定义聚合名称

terms:聚合的具体操作,terms代表分组

size:查询结果不显示原始数据

2、求平均值

{
    "aggs" : {
        "age_avg" : {
            "avg" : {
                "field" : "age"
            }
        }
    },
    "size" : 0
}

avg:平均聚合操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/67520.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过虚拟机搭建个人NAS

通过虚拟机搭建个人NAS 1 搭建黑群辉NAS 前期资料: 黑群晖系统 天翼云:https://cloud.189.cn/t/Vj2QRbFzq6Nn(访问码:i94s) 百度网盘:链接:https://pan.baidu.com/s/1MqimGhZnOTIcYfZhY5Z4lw 提取码:75n…

JSP 视频点播系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 视频点播系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开 发,数据库为Mysql,使用ja…

【数据集NO.5】小目标检测数据集汇总

文章目录前言一、TinyPerson数据集二、密集行人检测数据集三、加州理工学院行人检测数据集前言 数据集对应应用场景,不同的应用场景有不同的检测难点以及对应改进方法,本系列整理汇总领域内的数据集,方便大家下载数据集,若无法下…

大数据-Hadoop部署模式

一、JDK安装与配置 1、下载JDK压缩包 2、上传到master虚拟机 将JDK压缩包上传到master虚拟机/opt目录 查看上传的JDK压缩包 3、在master虚拟机上安装配置JDK 执行命令:tar -zxvf jdk-8u231-linux-x64.tar.gz -C /usr/local,将JDK压缩包解压到指定目…

【VUE3】保姆级基础讲解(一):初体验与指令

目录 安装和引入 CDN 本地引入 VUE初体验 MVVM模型 data属性 与 methods属性 VUE基础-模板语法 Mustache双大括号语法 v-once指令 v-html v-pre v-cloak v-memo v-bind(重要) 对象语法 v-bind直接绑定对象 v-on 条件渲染 v-for 基础使…

antd级联选择器(a-cascader)动态加载和动态回显效果实现

文章目录1、介绍2、效果图如下图所示:(只实现3层的)3、实现方法(1)层级可单独选择(2)组件使用(3)data数据(4)实现动态加载数据1、 提示&#xff1…

模糊预测|RFIS与ANFIS模糊模型预测的比较(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清…

vue2中实现右键菜单

vue2中实现右键菜单 效果图-右键菜单 1、安装 npm install vue-contextmenujsyarn add vue-contextmenujsCDN <script src"https://unpkg.com/vue-contextmenujs/dist/contextmenu.umd.js">2、使用 2.1、引入 src/main.js import Contextmenu from "…

python sklearn knn快速实现,保姆级教学

目录介绍KNN实战加载模块读取数据训练、测试数据分割关键环节&#xff1a;训练预测sklearn官方代码实例介绍 首先上链接 https://www.sklearncn.cn/ scikit-learn是基于Python语言的机器学习库&#xff0c;具有&#xff1a; 简单高效的数据分析工具 可在多种环境中重复使用 …

一套Altair Feko复杂结构模型散射和天线辐射仿真建模攻略

导读&#xff1a;Feko软件广泛应用于电磁散射、电磁辐射仿真&#xff0c;例如&#xff1a;天线、天线布局、天线罩、屏蔽效能、电磁散射、频选结构、线束EMC等方面。问题种类繁多&#xff0c;但是无论仿真哪一类问题&#xff0c;其仿真流程是相同的&#xff0c;我们只需掌握了这…

VirtualBox Ubuntu 16.04 磁盘不相邻分区扩容解决方案

前言 博主做期末大作业时用到 VirtualBox 6.1 安装的 Ubuntu 16.04 LTS 虚拟机&#xff0c;开始只分配了 20GB 硬盘&#xff0c;跑实验时发现空间不够&#xff0c;需要对磁盘扩容&#xff0c;折腾了半天&#xff0c;在此做一个小记录。 警告&#xff1a;博主并不精通 Linux&am…

风险评估具体操作流程

概述 风险评估应贯穿于评估对象生命周期 各阶段中。评估对象生命周期各阶段中涉及的风险评估原则和方法昆一致的&#xff0c;但由干各阶段实施内容对象、安全需求不同.使得风险评估的对象、目的、要求等各方面也有所不同。在规划设计阶段&#xff0c;通过风险评估以确定评估对…

摄影师接单小程序开发,自由交易平台

在网红直播经济的强势发展下&#xff0c;年轻一代对于摄影方面的需求急速增长&#xff0c;但是年轻人群体在摄影方面的要求更趋向于个性化&#xff0c;普通的影楼不仅拍摄价格高&#xff0c;在拍摄风格上也比较单调&#xff0c;缺乏创新&#xff0c;难以满足用户消费需求。对于…

cubeIDE开发, stm32的ADC(模数转换器) 开发要点

一、ADC模数转换简介 ADC(Analog-to-Digital Converter&#xff0c;模数转换器) 是将连续变化的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号&#xff0c;例如温度、压力、声音或者图像等&#xff0c;需要转换成更容易储存、处理和发射的数字形式。模数转换器可以实…

cesium切片底图正常出来但控制台一直报错的方法

1、部署ngnix服务 2、修改ngnix配置 在location 下的路径配置如下内容 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods GET, POST, OPTIONS; add_header Access-Control-Allow-Headers DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Re…

程序员需知的8个视频教程网站,建议收藏

上一篇介绍的是在线教程网站以文字性内容为主&#xff0c;同样收藏了一些以视频为主的一些网站&#xff0c;相比较而言&#xff0c;更容易上手&#xff0c;当然&#xff0c;也更加耗时间。 1、B站 简 介&#xff1a;没错&#xff0c;bilibili也可以用来学习&#xff0c;除了番…

吉林优美姿文化:抖音小店店铺评分怎么提升?

现在大家都在抖音平台上购物&#xff0c;只用等商家发货就行了&#xff0c;但是抖音发货也是有一定相关规定的&#xff0c;也需要各位商家去遵守的&#xff0c;那么抖音的发货时效方面有着什么样的规定呢&#xff1f;跟着吉林优美姿小编来看一下吧&#xff01;发货时间&#xf…

TPE-3-CHO;CAS:2351847-81-7;AIE聚集诱导发光

中文名 4,4,4,4-(乙烯-1,1,2,2-四基)四(([1,1-联苯]-3-甲醛)) 英文名 4,4,4,4-(Ethene-1,1,2,2-tetrayl)tetrakis(([1,1-biphenyl]-3-carbaldehyde)) 中文别名 四(3-甲醛基联苯基)乙烯 | 4,4,4,4-(乙烯-1,1,2,2-四基)四(([[1,1-联苯] -3 -甲醛)) 物理化学性质 密度 1.2200.06 g…

spring的BeanPostProcessor分析

spring常见的set注入&#xff0c;就是通过配置文件给变量赋值&#xff0c;这属于第一步注入。BeanPostProcessor还能进行第二次注入&#xff0c;简单来说就是第二是给变量赋值 1、首先定义一个实体类EntityObject&#xff0c;声明get和set方法 package beanPost;public class…

C语言---函数---总结

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​ &#x1f4e3;系列专栏&#xff1a;鹏哥带我学c带我飞 &#x1f4ac;总结&#xff1a;希望你看…