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

打印 上一主题 下一主题

主题 641|帖子 641|积分 1923

添加数据

先使用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年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋侪。





既有得当小白学习的零底子资料,也有得当3年以上履历的小伙伴深入学习提升的进阶课程,根本涵盖了95%以上大数据开发知识点,真正体系化!
由于文件比力大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习条记、源码课本、实战项目、解说视频,而且后续会持续更新
假如你以为这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)

712516484786)]
[外链图片转存中…(img-QxFKgvkt-1712516484786)]
[外链图片转存中…(img-02wGCgQb-1712516484787)]
既有得当小白学习的零底子资料,也有得当3年以上履历的小伙伴深入学习提升的进阶课程,根本涵盖了95%以上大数据开发知识点,真正体系化!
由于文件比力大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习条记、源码课本、实战项目、解说视频,而且后续会持续更新
假如你以为这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
[外链图片转存中…(img-uvyFFByl-1712516484787)]

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

忿忿的泥巴坨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表