当前位置:   article > 正文

elasticsearch查询操作(语句方式)_es模糊查询语句_elasticsearch 模糊查询

elasticsearch 模糊查询

添加数据

先使用API,创建索引库,并且把数据从MySQL中查出来,传到ES上,参考(elasticsearch操作(API方式)

在这里插入图片描述

索引库(student)结构;

在这里插入图片描述

1、模糊查询

模糊查询,是指字段类型是“text”,参与分词的字段,如name、all字段;

(1)全部查询;

格式:

1.1 全部查询

GET /索引库名/_search
{
“query”: {
“match_all”: {}
}
}

可以看到,13条文档都查询出来了;

在这里插入图片描述

(2)单字段查询;

格式:

1.2 单字段查询

GET /索引库名/_search
{
“query”: {
“match”: {
“字段名”: “字段值”
}
}
}

查询结果:

在这里插入图片描述

(3)多字段查询;

格式:

1.3 多字段查询

GET /索引库名/_search
{
“query”: {
“multi_match”: {
“query”: “字段值”,
“fields”: [“字段名1”,“字段名2”]
}
}
}

查询结果:

在这里插入图片描述

2、精确查询

精确查询,用于等值判断的文档,即查询的值等于文档中对应字段的值,有两种,分别是term、range;

(1)term查询;

格式:

GET /索引库/_search
{
“query”: {
“term”: {
“字段名”: {
“value”: “字段值”
}
}
}
}

查询结果:

在这里插入图片描述

(2)range查询;

格式:

2.2 精确查询之range:job>=1 and job < 3

GET /索引库名/_search
{
“query”: {
“range”: {
“字段名”: {
“gte”: 字段值≥,
“lt”: 字段值<
}
}
}
}

查询结果:

在这里插入图片描述

3、地理坐标查询

es提供了地理坐标数据类型(如geo_point),如果文档中有由经纬度组成的位置数据,可以针对文档中的经纬度坐标查询,有两种方式:

(1)矩形范围;

根据提供的两个位置,画出一个矩形,查询位置在这个矩形内的文档;

在这里插入图片描述

格式:

GET /索引库名/_search
{
“query”: {
“geo_bounding_box”:{
“location”:{
“top_left”:{
“lat”:左上角位置纬度,
“lon”:左上角位置经度
},
“bottom_right”:{
“lat”:右下角位置纬度,
“lon”:右下角位置经度
}
}
}
}
}

(2)方圆范围;

根据提供的一个位置,一个距离,以位置为圆心,距离为半径,查询该位置方圆范围的文档;

在这里插入图片描述

格式:

3.2 地理查询值geo_distance

GET /索引库名/_search
{
“query”: {
“geo_distance”:{
“distance”:“距离”,
“location”:“纬度,经度”
}
}
}

距离可以可以写任意长度单位,如15km,15000m;

4、复合查询

(1)算分查询;

查询的每条文档都会有一个分值,这个分值是ES根据BM25公式计算得出的,查询结果会按照分值从高到低排序,我们可以根据文档中的条件,来手动调整该分值,使分值高的文档排在最前面;

在这里插入图片描述

比如,我们把ID为13的文档,手动修改分值,使其排在最前面;

格式:

4.1 算分查询

GET /student/_search
{
“query”: {
“function_score”: {
“query”: {

查询

“match_all”: {}
},
“functions”: [
{
“filter”: {

过滤

“term”: {
“id”: “13”
}
},

设置权重

“weight”: 10
}
],

加权模式,即最终分值 = 查询分值 ? 权重的运算符,multiply为乘

“boost_mode”: “multiply”
}
}
}

boost_mode常见的有multiply(乘),sum(加),replace(替换,即使用权重替换掉查询分值);

在这里插入图片描述

(2)布尔查询;

布尔查询也叫复合查询,指多条件的查询,该查询下有以下四个子查询,可根据实际需要添加:

  • must:必须匹配的子查询,类似“与”;
  • should:选择性匹配子查询,类似“或”;
  • must_not:必须不匹配,不参与算分,类似“非”;
  • filter:必须匹配,不参与算分;

如查询性别为“1”,job不在(2,4]区间内,id为11的文档,all字段可以为123456,DSL语句如下:

4.2 布尔查询

GET /student/_search
{
“query”: {
“bool”: {

必须匹配的子查询

“must”: [
{
“match”: {
“gender”: “1”
}
}
],

必须不能匹配的子查询

“must_not”: [
{
“range”: {
“job”: {

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
img

712516484786)]
[外链图片转存中…(img-QxFKgvkt-1712516484786)]
[外链图片转存中…(img-02wGCgQb-1712516484787)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
[外链图片转存中…(img-uvyFFByl-1712516484787)]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/612423
推荐阅读
相关标签
  

闽ICP备14008679号