请求体查询

请求体查询

# 空查询

GET /_search
{}
GET /index_2020*/type1,type2/_search
{}

# 分页查询

GET /_search
{
  "from":5,
  "size":5
}


# 由于GET带请求体不被广泛认同,因此ES支持POST

POST /_search
{
  "from":5,
  "size":5
}

# 查询表达式
# 空查询,匹配所有文档

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


# 针对某一字段查询

GET /_search
{
  "query": {
    "match":{
      "tweet":"elasticsearch"
    } 
  }
}

# 合并查询语句

GET /_search
{
  "query": {
    "bool": {
      "must": [{"match": {"tweet": "elasticsearch"}}],
      "must_not": [{"match": {"name": "mary"}}],
      "should": [{"match": {"tweet": "full text"}}],
      "filter": {"range": {"age": {"gt": 30}}}
    }
  }
}

GET /_search
{
  "query": {
    "bool":{
      "must": [{"match": {"email": "business opportunity"}}],
      "should": [
          {"match": {"FIELD": "TEXT"}},
          {"bool":
            {
              "must":[{"match":{"FIELD":"TEXT"}}],
              "should": [{"match": {"FIELD": "TEXT"}}]
            }
          }
      ],
      "minimum_should_match": 1
    }
  }
}


# 最重要的几个查询
# 1.match_all, 得到评分值全为1的_score
# 2.match,可进行全文搜索和精确值查询
# 3.multi_match,在多个字段上进行相同的match查询
# 4.range,用于时间和数字区间查询,操作符:gt,gte,lt,lte
# 5.term,用于单个值对某个字段精确匹配
# 6.terms,用于多个值对某个字段精确匹配
# 7.exists和missing,用于查找文档中某个字段有值(IS NOT NULL)或无值(IS NULL)的文档


# 组合多查询
# 1.must, 必须匹配条件
# 2.must_not, 必须不匹配条件
# 3.should, 如果满足条件,则加分,否则无影响
# 4.filter, 只用于筛选文档,对评分不影响
# 只有一个filter,没有其他查询,可以使用constant_score使评分变成常量

# 验证查询
# _validate/query 验证查询语句
# explain参数,用于查看错误信息
# 以下为不合法查询语句

GET /gb/tweet/_validate/query?explain
{
  "query": {
    "tweet" : {
      "match" : "query text"
    }
  }
}

# 以下为正确查询语句,每个index都会显示出自己对查询的分析结果

GET /_validate/query?explain
{
   "query": {
      "match" : {
         "tweet" : "really powerful"
      }
   }
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无绪听雨眠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值