前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除
学习B站博主教程笔记:
1、什么是DSL
Elasticsearch提供了基于JSON的完整Query DSL(Domain Specific Language,领域特定语言)来定义查询。
2、全文检索-match查询
# 查询品牌是"小苹华"的所有商品。背后的逻辑是会对中文进行分词
POST http://192.168.1.0:9200/cluster-shopping/_search
{
"query":{
"match":{
"brand":"小苹华"
}
}
}
3、完全匹配-match_phrase查询
# 查询品牌是"小苹华"的所有商品。背后的逻辑是不会对中文进行分词!!!
POST http://192.168.1.0:9200/cluster-shopping/_search
{
"query":{
"match_phrase":{
"brand":"小苹华"
}
}
}
4、全量查询-match_all
# 请求体内容可以不写,默认就是发起了全量查询(match_all)
POST http://192.168.1.0:9200/cluster-shopping/_search
{
"query":{
"match_all":{}
}
}
5、分页查询-size-from
POST http://192.168.1.0:9200/cluster-shopping/_search
{
"query":{
"match_all":{}
},
"siez": 7,
"from": 28
}
# size:每页显示多少条数据,默认值为10
# from:指定跳过数据偏移量的大小,默认值为10,即默认看第一页。查询指定页码的from值="(页码-1)*每页数据大小(size)"
6、查看"_source"对象的指定字段
POST http://192.168.1.0:9200/cluster-shopping/_search
{
"query":{
"match_all":{}
},
"siez": 7,
"from": 28
"_source":["brand","price"]
}
7、查询包含指定字段的文档-exists
exists:判断某个字段是否存在,若存在则返回该文档,若不存在,则不返回文档
POST http://192.168.1.0:9200/cluster-shopping/_search
{
"query":{
"exists":{
"field": "hobby"
}
}
}
8、语法高亮-highlight
POST http://192.168.1.0:9200/cluster-shopping/_search
{
"query":{
"match":{
"brand": "苹果"
}
},
"highlight":{
"pre_tags": ["<h1>"],
"post_tags": ["</h1>"]
"fileds":{
"brand":{}
}
}
}
# highlight:设置高亮
# fields:指定对哪个字段进行语法高亮
# pre_tags:自定义高亮的前缀标签
# post_tags:自定义高亮的后缀标签
9、基于字段进行排序-sort
POST http://192.168.1.0:9200/cluster-shopping/_search
{
"query":{
"match":{
"brand": "苹果"
}
},
"sort":{
"price":{
"order":"asc"
}
}
}
# sort:基于指定的字段进行排序
# order:指定排序的规则,分为"asc"(升序)和"desc"(降序)
10、多条件查询-bool
POST http://192.168.1.0:9200/cluster-shopping/_search
{
"query":{
"bool":{
"must":{
{
"match_phrase":{
"brand":"苹果"
}
},
{
"match": 5499
}
}
}
}
}
# bool:可以匹配多个条件查询;其中有"must","must_not","should"
11、范围查询-range
POST http://192.168.1.0:9200/cluster-shopping/_search
{
"query":{
"bool":{
"must":{
{
"match_phrase":"苹果"
}
}
},
"filter":{
"range":{
"price":{
"gt": 5000,
"lt": 8000
}
}
}
}
}
# filter:过滤数据
# range:基于范围进行过滤,此处为基于的是"price"进行过滤;
12、精确匹配查询-terms
POST http://192.168.1.0:9200/cluster-shopping/_search
{
"query":{
"terms":{
"price": [4699,299,4066]
}
}
}
致谢
在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。
学习永无止境,让我们共同进步!!