目录
一、查询某个索引下的全部文档
二、根据查询条件查询文档
三、分页查询
四、查询指定返回的字段
五、排序
六、多条件查询
七、范围查询
八、全文检索与完全匹
一、查询某个索引下的全部文档
语法:
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进行完全匹配。