elasticsearch官方文档学习之第一章:起步 03 基础检索方式

1.match_all 全部匹配查询

通过_source 控制查询返回的字段

GET /bank/_search
{
  "query": { "match_all": {} },
  "_source": ["account_number", "balance"]
}

2.match 匹配查询

1)查询某个字段值的特定记录

GET /bank/_search
{
  "query": {
    "match": {
      "account_number": "20"
    }
  }
}

2)查询地址包含 mill 或 lane的记录(es默认空格切分后or查询)

GET /bank/_search
{
  "query": { "match": { "address": "mill lane" } }
}

3.bool query 查询

使用说明:must 与 ,should 或 ,must_not 非
1)查询地址同时包含mill 和 lane的

GET /bank/_search
{
  "query": {
    "bool": {
      "must": [
        {"match": {"address": "mill"}},
        {"match": {"address": "lane"}}
      ]
    }
  }
}

2)查询地址包含mill或者lane的记录

GET /bank/_search
{
  "query": {
    "bool": {
      "should": [
        { "match": { "address": "mill" } },
        { "match": { "address": "lane" } }
      ]
    }
  }
}

3)查询地址一定不包含mill和lane的记录

GET /bank/_search
{
  "query": {
    "bool": {
      "must_not": [
        { "match": { "address": "mill" } },
        { "match": { "address": "lane" } }
      ]
    }
  }
}

4)查询age为40并且state值不为ID的记录

GET /bank/_search
{
  "query": {
    "bool": {
      "must": [
        { "match": { "age": "40" } }
      ],
      "must_not": [
        { "match": { "state": "ID" } }
      ]
    }
  }
}

bool query filter
bool query 支持filter子句查询,它允许我们根据一系列值筛选文档,通常用于数字或者日期等。
如:查询返回余额在20000到30000之间的所有帐户

GET /bank/_search
{
  "query": {
    "bool": {
      "must": { "match_all": {} },
      "filter": {
        "range": {
          "balance": {
            "gte": 20000,
            "lte": 30000
          }
        }
      }
    }
  }
}

gte:greater than or equal 大于等于, lte:less than or equal 小于等于

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值