前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch 7.6.1学习(四)对文档的增删改查,具体是复杂查询和高亮查询

Elasticsearch 7.6.1学习(四)对文档的增删改查,具体是复杂查询和高亮查询

作者头像
一写代码就开心
发布2021-03-02 14:48:48
6000
发布2021-03-02 14:48:48
举报
文章被收录于专栏:java和python

基本操作

1 添加文档

在这里插入图片描述
在这里插入图片描述

数据库中有3条数据

代码语言:javascript
复制
PUT test3/_doc/3
{
  "name":"hong",
  "age":17,
  "birth":"1996-02-01"
}

2 (查)获取文档数据

1 根据id查询

代码语言:javascript
复制
GET   test3/_doc/3
在这里插入图片描述
在这里插入图片描述

2 带条件的查询

代码语言:javascript
复制
GET test3/_doc/_search?q=name:jing
在这里插入图片描述
在这里插入图片描述

3 (更新)Post _update , 推荐使用这种更新方式!

代码语言:javascript
复制
POST test3/_doc/1/_update
{
  "doc":{
    "name":"minmin"
  }
}

复杂查询操作

复杂查询

之前我们查询的语句是:

代码语言:javascript
复制
GET test3/_doc/_search?q=name:jing

现在我们想要更加复杂的查询,如何书写呢?

代码语言:javascript
复制
GET test3/_doc/_search
{
  "query": {    查询的属性
    "match": {   精确匹配的属性
      "name":"minmin"
    }
  }
}
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自定义查询出的字段

之前是查询出数据库中数据的所有的字段,但是现在我们想要只是一条数据的一个字段,那么如何查询

我们先看查询出的数据格式

在这里插入图片描述
在这里插入图片描述

一条数据的所有字段都在_source属性里面。现在我们不想要这么多的字段,那么我们在查询的时候可以限制。现在需要查询具体的字段

代码语言:javascript
复制
GET test3/_doc/_search
{
  "query": {
    "match": {
      "name":"敏"
    }
  },
  "_source": ["name"]
}
在这里插入图片描述
在这里插入图片描述

排序

代码语言:javascript
复制
GET test3/_doc/_search
{
 
  "sort":[    排序属性
    {   一个字典里面写一个要排序的字段
      "age":{   根据这个字段进行排序
        "order":"asc"   设置升序还是降序
      }
    }
    ]
}

分页

代码语言:javascript
复制
GET test3/_doc/_search
{
  "from":1,   从第几个开始
  "size":2   返回几个数据
}

布尔值查询

must (and) 命令

must (and),所有的条件都要符合 ,相当于sql中的 where id = 1 and name = xxx

只有多个条件都符合之后才会查询出来 。

代码语言:javascript
复制
GET test3/_doc/_search
{
  "query": {
    "bool":{
      "must":[   list里面是多个对象
        {       每一个对象里面都是精确匹配
          "match": {
          "name":"jing"
          }
        },
        {   每一个对象里面是精确匹配
          "match": {
          "age":12
          }
        }
        
        ]
    }
    
  }
 
}

只有两个条件都一样了,才可以查询出来,这个就是must的作用

should(or)命令

should(or),所有的条件都要符合 where id = 1 or name = xxx

代码语言:javascript
复制
GET test3/_doc/_search
{
  "query": {
    "bool":{
      "should":[    这个是或者命令
        {
          "match": {
          "name":"jing"
          }
        },
        {
          "match": {
          "age":12
          }
        }
        
        ]
    }
    
  }
 
}

must_not (not)

代码语言:javascript
复制
GET test3/_doc/_search
{
  "query": {
    "bool":{
      "must_not":[   不是一下条件的查询出来
        {
          "match": {
          "name":"jing"
          }
        },
        {
          "match": {
          "age":12
          }
        }
        
        ]
    }
    
  }
 
}

过滤器 filter

代码语言:javascript
复制
GET test3/_doc/_search
{
  "query": {
    "bool":{
      "filter":{  将过滤的条件写在这个里面
        "range":{
          "age":{
            "gt":15,
            "lt":17
          }
        }
      }
    }
    
  }
 
}
代码语言:javascript
复制
gt 大于
gte 大于等于
lt 小于
lte 小于等于!
在这里插入图片描述
在这里插入图片描述

高亮

代码语言:javascript
复制
GET test3/_doc/_search
{
  "query":{
    "match":{
      "name":"jing"
    }
    
  },
  "highlight":{
    "fields":{
      "name":{}
    }
  }
 
}
在这里插入图片描述
在这里插入图片描述

自定义高亮的方法

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
GET test3/_doc/_search
{
  "query":{
    "match":{
      "name":"jing"
    }
    
  },
  "highlight":{
    "pre_tags":"<p>",    自定义方法
    "post_tags":"</p>",
    "fields":{
      "name":{}
    }
  }
 
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/02/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本操作
    • 1 添加文档
      • 2 (查)获取文档数据
        • 3 (更新)Post _update , 推荐使用这种更新方式!
        • 复杂查询操作
          • 复杂查询
            • 自定义查询出的字段
          • 排序
            • 分页
              • 布尔值查询
                • must (and) 命令
                • should(or)命令
                • must_not (not)
                • 过滤器 filter
              • 高亮
                • 自定义高亮的方法
                相关产品与服务
                数据库
                云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档