ElasticSearch-文档查询

目录

一、查询某个索引下的全部文档

二、根据查询条件查询文档

三、分页查询

四、查询指定返回的字段

五、排序

六、多条件查询

七、范围查询

八、全文检索与完全匹


一、查询某个索引下的全部文档

语法:

GET /索引名称/_search
{
  "query": {
    "match_all": {}
  }
}

例子:

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

结果:

二、根据查询条件查询文档

语法如下,使用query,match查询条件。

GET /索引名称/_search
{
  "query": {
    "match": {
      "属性名":"属性值"
    }
  }
}

 例子:

GET /es_db1/_search
{
  "query": {
    "match": {
      "name":"关羽"
    }
  }
}

结果:

 

三、分页查询

语法:from和size, from表示从第几个开始,size表示查询多少条。from:(页码数-1) * size大小。

例子:以下例子就是从第3页开始,查询2条。

GET /es_db1/_search
{
  "query": {
    "match": {
      "name":"关羽"
    }
  },
  "from":4,
  "size": 2
}

结果:

四、查询指定返回的字段

语法:

GET /es_db1/_search
{
  "query": {
    "match": {
      "name":"查询条件字段值"
    }
  },

  "_source":"返回的字段",
  "from":4,
  "size": 2
}

例子:

GET /es_db1/_search
{
  "query": {
    "match": {
      "name":"关羽"
    }
  },
  
  "_source":"address",
  "from":4,
  "size": 2
}

结果:

五、排序

语法:这里的age,直接修改age字段即可表示排序字段, sort是固定写法, order是固定写法表示排序的意思,desc表示降序意思。

GET /es_db1/_search
{
  "query": {
    "match": {
      "name":"查询条件字段值"
    }
  },
 
  "from":4,
  "size": 2,
  "sort": {
      "age": {
        "order": "desc"
      }
  }
  
}

例子:

GET /es_db1/_search
{
  "query": {
    "match": {
      "name":"关羽"
    }
  },
 
  "from":4,
  "size": 2,
  "sort": {
      "age": {
        "order": "desc"
      }
  }
  
}

结果:

六、多条件查询

 bool表示查询结果是否满足,固定写法。 must表示must数据里面的查询条件同时成立相当于and查询。如果是must改为should,则表示任意条件满足,相当于or

# 多条件查询同时成立
GET /es_db1/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name":"关羽"
          }
        },
         {
          "match": {
            "address":"蜀国荆州2"
          }
        }
      ]
    }
  }
}

例子:

# 多条件查询同时成立
GET /es_db1/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name":"关羽"
          }
        },
         {
          "match": {
            "address":"蜀国荆州2"
          }
        }
      ]
    }
  }
}

结果:

 

例子:

# 多条件查询任一满足
GET /es_db1/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "name":"关羽"
          }
        },
         {
          "match": {
            "name":"刘备"
          }
        }
      ]
    }
  }
}

结果:

七、范围查询

语法:

GET /es_db1/_search
{
  "query": {
    "bool": {
      "must": [
         {
          "match": {
            "查询字段":"字段值"
          }
        }
      ],
      "filter": [
        {
          "range": {
            "查询字段": {
              "gte": 最小值,
              "lte": 最大值
            }
          }
        }
      ]
    }
  }
}

例子:

# 范围查询

GET /es_db1/_search
{
  "query": {
    "bool": {
      "must": [
         {
          "match": {
            "name":"刘备"
          }
        }
      ],
      "filter": [
        {
          "range": {
            "age": {
              "gte": 10,
              "lte": 50
            }
          }
        }
      ]
    }
  }
}

结果:

八、全文检索与完全匹

在上面的例子都是用match,是全文检索,比如说match“中华人民共和国” 会匹配“中华”,“人民”,“共和国”这三个中的任一一个。如果只想匹配“中华人民共和国”这个关键字而不是上面的三个,则需要把math改成 match_phrase进行完全匹配。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值