ElasticSearch 搜索数据

2023-12-25 16:40:32

在这里插入图片描述

精确查询

存在查询

Exists query 用于查询某个字段不为空的数据。如下所示,查询 age 不为空的 数据

POST user/_search
{
  "query": {
    "exists": {
      "field": "age"
    }
  }
}

主键查询

通过 _id 字段查询数据

POST user/_search
{
  "query": {
    "ids": {
      "values": ["1", "2", "3"]
    }
  }
}

前缀查询

POST user/_search
{
  "query": {
    "prefix": {
      "address": {
        "values": "beijing"
      }
    }
  }
}

范围查询

POST user/_search
{
  "query": {
    "range": {
      "age": {
        "gte": 10,
        "lte": 20
      }
    }
  }
}
查询参数解释
gt>
gte>=
lt<
lte<=
format设置时间格式

正则查询

POST user/_search
{
  "query": {
    "regexp": {
      "name": "*小*"
    }
  }
}

术语查询

POST user/_search
{
  "query": {
    "term": {
      "name": "小明"
    }
  }
}

多术语查询

terms query 和 term query 基本一样,terms query 允许在参数中传递多个查询词

POST user/_search
{
  "query": {
    "terms": {
      "name": ["小明", "小红"]
    }
  }
}

通配符查询

POST user/_search
{
  "query": {
    "wildcard": {
      "name": "*小*"
    }
  }
}

支持如下两个通配符

  1. ?匹配单个字符
  2. * 匹配零个或多个字符,包括空字符

复合查询

布尔查询

类型说明
must可包含多个查询条件,每个条件均被满足的文档才能被搜索到
filter可包含多个查询条件
should可包含多个过滤条件
must_not可包含多个过滤条件

参考博客

文章来源:https://blog.csdn.net/zzti_erlie/article/details/135198711
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。