广告
返回顶部
首页 > 资讯 > 精选 >Elasticsearch基本查询及组合查询实例分析
  • 639
分享到

Elasticsearch基本查询及组合查询实例分析

2023-06-30 06:06:36 639人浏览 独家记忆
摘要

这篇文章主要介绍“elasticsearch基本查询及组合查询实例分析”,在日常操作中,相信很多人在Elasticsearch基本查询及组合查询实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Elast

这篇文章主要介绍“elasticsearch基本查询及组合查询实例分析”,在日常操作中,相信很多人在Elasticsearch基本查询及组合查询实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Elasticsearch基本查询及组合查询实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Elasticsearch查询

查询分类:

基本查询:使用es内置查询条件进行查询

组合查询:把多个查询组合在一起进行复合查询

过滤:查询的同时,通过filter条件在不影响打分的情况下筛选数据

一 基本查询

#添加映射PUT laGo{  "mappings": {    "properties":{      "title":{        "stort":true,        "type":"text",        "analyzer":"ik_max_Word"      },      "company_name":{         "stort":true,        "type":"keyword",      },      "desc":{        "type":"text"      },      "comments":{        "type":"integer"      },      "add_time":{        "type":"date",        "fORMat":"yyy-MM-dd"      }    }  }}#测试数据POST lago/job{  "title":"python Django 开发工程师",  "company_name":"美团科技有限公司",  "desc":"对django熟悉,掌握mysql和非关系型数据库,网站开发",  "comments:200,  "add_time":"2018-4-1"}POST lago/job{  "title":"Python数据分析",  "company_name":"百度科技有限公司",  "desc":"熟悉Python基础语法,熟悉数据分析",  "comments:5,  "add_time":"2018-10-1"}POST lago/job{  "title":"python自动化运维",  "company_name":"上海华为",  "desc":"熟悉python基础语法,精通linux",  "comments:90,  "add_time":"2019-9-18"}
1.1 match查询
GET lagou/job/_search{  "query":{    "match":{      "title":"python"    }  }}#因为title字段做了分词,python都能搜索出来#搜索python网站也能搜索出来,把python和网站分成两个词#搜索爬取也能搜索到,把爬和取分词,去搜索#只搜取 搜不到
1.2 term查询
GET lagou/_search{  "query":{    "term":{      "title":"python"    }  }}#会拿着要查询的词不做任何处理,直接查询#用python爬虫,查不到,用match就能查到{  "query":{    "term":{      "company_name":"美团"    }  }}#通过美团,就查询不到
1.3 terms查询
GET lagou/_search{  "query":{    "terms":{      "title":["工程师","django","运维"]    }  }}#三个词,只要有一个,就会查询出来
1.4 控制查询的返回数量(分页)
GET lagou/_search{  "query":{    "match":{      "title":"python"    }  },  "form":1,  "size":2}#从第一条开始,大小为2
1.5 match_all 查询
GET lagou/_search{  "query":{    "match_all":{}  }}#所有数据都返回
1.6 match_phrase查询
GET lagou/_search{  "query":{    "match_phrase":{      "title":{        "query":"python系统",        "slop":6      }    }  }}#短语查询, #会把查询条件python和系统分词,放到列表中,再去搜索的时候,必须满足python和系统同时存在的才能搜出来#"slop":6 :python和系统这两个词之间最小的距离
1.7 multi_match
GET lagou/_search{  "query":{    "multy_match":{   "query":"python",      "fields":["title","desc"]    }  }}#可以指定多个字段#比如查询title和desc这个两个字段中包含python关键词的文档#"fields":["title^3","desc"]:权重,title中的python是desc中的三倍
1.8 指定返回的字段
GET lagou/_search{  "query":{    "stored_fields":["title","company_name"]    "match":{   "title":"python"    }  }}#只返回title和company_name字段#"stored_fields":["title","company_name",'dsc'],不会返回dsc,因为我们要求stroed_fields,之前desc字段设为false(默认),不会显示
1.9 sort 结果排序
GET lagou/_search{  "query":{ "match_all":{}  },  "sort":[    {      "comments":{        "order":"desc"      }    }  ]}#查询所有文档,按comments按desc降序排序
1.10 range范围查询
GET lagou/_search{  "query":{ "range":{        "comments":{          "gte":10,          "lte":20,          "boost":2.0        }      }  }}#指定comments字段大于等于10,小于等于20#boost:权重GET lagou/_search{  "query":{ "range":{        "add_time":{          "gte":"2019-10-11",          "lte":"now",        }      }  }}#对时间进行查询
1.11 wildcard查询
GET lagou/_search{  "query":{    "wildcard":{      "title":{        "value":"pyth*n",        "boost":2.0      }    }  }}#模糊查询,title中,有pyth任意值n得都能查出来
1.12 exists存在
exists:字段包含,存在的# 包含followers_count字段GET user_toutiao/_search{  "query": {      "bool": {        "must": [          {"exists": {            "field": "followers_count"          }}        ]      }  }}# 不包含followers_count字段GET user_toutiao/_count{  "query": {      "bool": {        "must_not": [          {"exists": {            "field": "followers_count"          }}        ]      }  }}# 不包含followers_count且updata_timestamp>1614221216GET user_toutiao/_count{  "query": {      "bool": {        "must_not": [          {            "exists": {              "field": "followers_count"            }          }        ],        "must": [          {"range": {            "updata_timestamp": {              "gt": 1614221216            }          }}        ]      }  }}

二 组合查询

2.1 bool查询
#bool查询包括must should must_not filter'''bool:{"filter":[],   字段过滤"must":[],     所有查询条件都满足"should":[],   满足一个或多个"must_not":{}  都不满足于must相反}'''# 建立测试数据POST lago/testjob/_bulk{"index":{"_id":1}}{"salary":10,"title":"Python"}{"index":{"_id":2}}{"salary":20,"title":"scrapy"}{"index":{"_id":3}}{"salary":30,"title":"Django"}{"index":{"_id":4}}{"salary":30,"title":"Elasticsearch"}
2.2 简单过滤查询
#select * from testjob where salary=20GET lagou/testjob/_search{  "query":{    "bool":{        "must":{          "match_all":{}        },        "filter":{          "term":{            "salary":20          }        }      }  }}
2.3 查询多个值
#查询薪资是10k或20k的GET lagou/testjob/_search{  "query":{    "bool":{        "must":{          "match_all":{}        },        "filter":{          "terms":{            "salary":[10,20]          }        }      }  }}#select * from testjob where title="python"GET lagou/testjob/_search{  "query":{    "bool":{        "must":{          "match_all":{}        },        "filter":{          "term":{            "title":"Python"          }        }      }  }}#title 是text字段,会做大小写转换,term不会预处理,拿着大写Python去查查不到#可以改成小写,或者用match来查询'''   "filter":{          "match":{            "title":"Python"          }        }'''#查看分析器解析结果GET _analyze{  "analyzer":"ik_max_word",  "text":"python网络开发工程师"}
2.4 bool过滤查询,可以做组合过滤查询
#select * from testjob where (salary=20 or title=Python) and (salary!=30)#查询薪资等于20k或者工作为python的工作,排除价格为30k的{  "query":{    "bool":{      "should":[        {"term":{"salary":20}},        {"term":{"title":"python"}}      ],      "must_not":{        "term":{"salary":30}      }    }  }}#select * from testjob where title=python or (title=django and salary=30){  "query":{    "bool":{      "should":[        {"term":{"title":"python"}},        {          "bool":{            "must":[              {"term":{"title":"django"}},              {"term":{"salary":30}}            ]          }        }      ]    }  }}

到此,关于“Elasticsearch基本查询及组合查询实例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Elasticsearch基本查询及组合查询实例分析

本文链接: https://www.lsjlt.com/news/327540.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Elasticsearch基本查询及组合查询实例分析
    这篇文章主要介绍“Elasticsearch基本查询及组合查询实例分析”,在日常操作中,相信很多人在Elasticsearch基本查询及组合查询实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Elast...
    99+
    2023-06-30
  • Elasticsearch之基本查询及组合查询操作示例
    目录Elasticsearch查询一 基本查询1.1 match查询1.2 term查询1.3 terms查询1.4 控制查询的返回数量(分页)1.5 match_all 查询1.6...
    99+
    2022-11-13
  • ElasticSearch查询文档基本操作实例
    目录查询文档 & 基本操作按照ID单个按照ID批量查询文档是否存在 & 通过id判断查询部分字段内容查询文档 & 条件查询不附加任何条件相关字段解释基础分页查...
    99+
    2023-02-02
    ElasticSearch 查询文档 ElasticSearch 文档操作
  • ElasticSearch学习之多条件组合查询验证及示例分析
    目录多条件组合查询boolconstant_score查询验证 & 分析验证分析排序默认排序自定义排序tips单字段排序多字段scroll分页初始化快照 & 快照保存...
    99+
    2023-02-02
    ElasticSearch 多条件组合查询 ElasticSearch 组合查询
  • 【MySQL】基本查询(插入查询结果、聚合函数、分组查询)
    目录 一、插入查询结果二、聚合函数三、分组查询(group by & having)四、SQL查询的执行顺序五、OJ练习 一、插入查询结果 语法: INSERT INTO tab...
    99+
    2023-09-25
    mysql
  • Elasticsearch聚合查询及排序操作示例
    目录1 es排序2 match和match的区别3 分页查询4 es 组合查询5 结果过滤展示字端6 结果高亮展示7 聚合查询avg、max、min、sum、分组8 mapping和...
    99+
    2022-11-13
  • Python模型聚合查询\Q查询\F查询\分组查询操作技巧解析
    目录模型中的一些查询操作:1.聚合查询:aggregate()是QuerySet 的一个终止子句2.Q查询: 如果你需要执行更复杂的查询(例如OR语句)3.F查询: (查询的是一整列...
    99+
    2022-11-12
  • MySQL聚合查询与联合查询操作的示例分析
    这篇文章主要为大家展示了“MySQL聚合查询与联合查询操作的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL聚合查询与联合查询操作的示例分析”这篇文章吧。一. 聚合查询1.聚合函...
    99+
    2023-06-29
  • MySQL联合查询的示例分析
    这篇文章给大家分享的是有关MySQL联合查询的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。笛卡尔积笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian ...
    99+
    2022-10-18
  • Oracle查询脚本的示例分析
    这篇文章将为大家详细讲解有关Oracle查询脚本的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 --查询回滚段信息selec ...
    99+
    2022-10-19
  • SQL的聚合函数及分组查询
    SQL的聚合函数及分组查询 要在这个世界上获得成功,就必须坚持到底:至死都不能放手。 count select count(*) from students #底层优化了 select count(1) from...
    99+
    2017-02-04
    SQL的聚合函数及分组查询
  • Oracle中集合查询的示例分析
    这篇文章主要介绍了Oracle中集合查询的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用并集运算,查询20号部门或30号部门的员...
    99+
    2022-10-18
  • Elasticsearch查询及聚合类DSL语句宝典示例详解
    目录前言一、match二、match_phrase三、mult_match四、term五、terms六、range七、wildcard八、regexp九、组合多查询(bool查询)十...
    99+
    2023-01-03
    Elasticsearch查询聚合类DSL Elasticsearch 聚合查询
  • MySQL的慢查询实例分析
    这篇文章主要介绍“MySQL的慢查询实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL的慢查询实例分析”文章能帮助大家解决问题。1 概念MySQL的慢查询,全名是慢查询日志,是MySQ...
    99+
    2023-06-28
  • MySQL慢日志查询实例分析
    本篇内容介绍了“MySQL慢日志查询实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、慢查询日志概...
    99+
    2022-10-19
  • springboot结合vue实现增删改查及分页查询
    1:首先。创建一个springboot项目,这里我使用以及构建好基本框架的脚手架,打开是这个样子: Result类:已经封装好了三种返回类型的包装类:code,msg,data ...
    99+
    2022-11-12
  • SpringBoot整合ElasticSearch实现模糊查询,排序,分页,高亮
    目录 前言 1.框架集成-SpringData-整体介绍 1.1Spring Data Elasticsearch 介绍 2.框架集成Spring Data Elasticsearch 2.1版本说明 2.2.idea创建一个spring...
    99+
    2023-09-02
    elasticsearch spring boot java
  • mysql的树形结构存储及查询实例分析
    这篇文章主要介绍“mysql的树形结构存储及查询实例分析”,在日常操作中,相信很多人在mysql的树形结构存储及查询实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql的树形结构存储及查询实例分析...
    99+
    2023-06-29
  • MySQL中join查询实例代码分析
    这篇“MySQL中join查询实例代码分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“M...
    99+
    2022-11-30
    mysql join
  • MySQL多表关联查询实例分析
    本篇内容介绍了“MySQL多表关联查询实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据库设计范式目前数据库设计有五种范式 , 一般...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作