您的位置:首页 > 游戏 > 手游 > 设计软件教程_程序员需要考哪些证书_有哪些搜索引擎网站_2021年网络热点舆论

设计软件教程_程序员需要考哪些证书_有哪些搜索引擎网站_2021年网络热点舆论

2024/12/26 9:07:49 来源:https://blog.csdn.net/t194978/article/details/143646016  浏览:    关键词:设计软件教程_程序员需要考哪些证书_有哪些搜索引擎网站_2021年网络热点舆论
设计软件教程_程序员需要考哪些证书_有哪些搜索引擎网站_2021年网络热点舆论

es基本用法-查询api
    • 说明
    • 查询所有
    • 某一字段匹配查询
    • 多字段查询
    • bool查询
    • 范围查询
    • 精确查询
    • 正则匹配
    • 模糊查询
    • 结果处理

说明

es对数据的检索,总结下来就是两部分,即查询和处理。查询指的是查找符合条件的数据,包括查询所有、匹配查询、布尔查询、范围查询、模糊查询等等。处理指的是对查询到的数据做进一步处理,包括是否分页、是否排序、是否聚合、是否分组、是否只返回部分字段等等。es的api就是对这两部分的不同组合。举例如下,数据集使用上一篇创建的bank索引。

查询所有

GET /bank/_search
{"query":{"match_all": {}}
}

在这里插入图片描述

某一字段匹配查询

这块的查询已经涉及到了分词,指的是查询address中包含Place或National的文档。针对分词查询后面会进一步做深入讲解。

GET /bank/_search
{"query": {"match": {"address": "Place National"}}
}

在这里插入图片描述

多字段查询

multi_match用在多字段查询中,下面的语句表示,只要address或city中,包含mill和urie其中的一个,就算是命中查询。用sql语句表示: select * from bank where (address like ‘%mill%’ or like ‘%urie%’) or (citylike ‘%mill%’ or like ‘%urie%’)

GET /bank/_search
{"query":{"multi_match": {"query": "mill urie","fields": ["address","city"]}}
}

在这里插入图片描述

bool查询

bool查询主要用到三个关键字:must、must_not、should。在mysql中,就是and、not、or的概念。
其中,must表示必须包含,must_not表示一定不能包含,should表示可以包含,也可以不包含。包含的话,排名要比不包含的靠前。

GET /bank/_search
{"query": {"bool": {"must": [{"match": {"gender": "M"}},{"match": {"address": "mill"}}],"must_not": [{"match": {"age": "18"}}],"should": [{"match": {"lastname": "Wallace"}}]}}
}

在这里插入图片描述

范围查询

在范围查询中,使用的关键词有range、filter,以及表示大于小于的gt、lt、gte、lte。

关键字含义
gt大于
lt小于
gte大于等于
lte小于等于
  1. rang方式
GET /bank/_search
{"query": {"range": {"age": {"gte": "20","lte": "25"}}}
}

在这里插入图片描述

  1. filter方式
GET /bank/_search
{"query": {"bool": {"must": [{"match": {"gender": "M"}},{"match": {"address": "mill"}}],"filter": [{"range": {"age": {"gte": 10,"lte": 50}}},{"range": {"balance": {"gte": 9812,"lte": 9813}}}]}}
}

在这里插入图片描述

精确查询

精确查询可以简单理解为完全匹配查询,用term关键字。在数值型查询中经常用到,而在文本中查询使用,是表示查询时不进行分词,刚好和分词查询关键字match对立。

1.查询单个

GET /bank/_search
{"query": {"match": {"age": 33}}
}

在这里插入图片描述
2.查询多个,此时用terms

GET /bank/_search
{"query": {"terms": {"balance": ["34487","29104"]}}
}

在这里插入图片描述
2.查询多个,也可以用另外一种方式:should+term

GET /bank/_search
{"query": {"bool": {"should": [{"term": {"balance": "34487"}},{"term": {"balance": "29104"}}]}}
}

在这里插入图片描述

正则匹配

GET /bank/_search
{"query": {"wildcard": {"firstname": "*amber"}}
}

在这里插入图片描述

模糊查询

GET /bank/_search
{"query": {"fuzzy": {"firstname": "hol"}}
}

在这里插入图片描述
上述只罗列了常用的查询,除此之外,还有很多其他查询,这里不做演示,感兴趣的小伙伴可以自己查找下。

结果处理

开头我们也说了,es对数据的处理就两部分,查询和处理。上面介绍了查询,现在我们介绍下基本的处理:分页、排序、返回部分字段。

关键字含义
sortdesc/asc
from页数,从0开始
size每页大小
_source只返回需要的字段,可以罗列字段,也可以用通配符
GET /bank/_search
{"query": {"match": {"address": "Hendrickson"}},"sort": [{"balance": "desc"}],"from": 0,"size": 5,"_source": ["balance","account_number","address"]
}

在这里插入图片描述

GET /bank/_search
{"query": {"match": {"address": "Hendrickson"}},"sort": [{"balance": "asc"}],"from": 0,"size": 5,"_source":{"includes": "addr*","excludes": ["name","bir*"]}
}

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com