ElasticSearch 接口:文档的查询-条件查询、分页查询和排序

2022-04-22 0 By admin

一、条件查询

1.1、URL带参查询

查找category为小米的文档, GET请求 :
http://127.0.0.1:9200/shopping/_search?q=category:小米
返回结果如下:

{
    "took": 94,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 3,
            "relation": "eq"
        },
        "max_score": 1.3862942,
        "hits": [
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "ANQqsHgBaKNfVnMbhZYU",
                "_score": 1.3862942,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://www.gulixueyuan.com/xm.jpg",
                    "price": 3999
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "A9R5sHgBaKNfVnMb25Ya",
                "_score": 1.3862942,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://www.gulixueyuan.com/xm.jpg",
                    "price": 1999
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "BNR5sHgBaKNfVnMb7pal",
                "_score": 1.3862942,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://www.gulixueyuan.com/xm.jpg",
                    "price": 1999
                }
            }
        ]
    }
}

1.2、请求体带参查询

接下带JSON请求体,还是查找category为小米的文档。
GET请求 : http://127.0.0.1:9200/shopping/_search
附带JSON体如下:

{
	"query":{
		"match":{
			"category":"小米"
		}
	}
}

1.3、带请求体方式的查找所有内容

查找所有文档内容
GET请求 : http://127.0.0.1:9200/shopping/_search
附带JSON体如下:

{
	"query":{
		"match_all":{}
	}
}

1.4、查询指定字段

如果你想查询指定字段
GET请求 : http://127.0.0.1:9200/shopping/_search
附带JSON体如下:

{
	"query":{
		"match_all":{}
	},
	"_source":["title"]
}

二、分页查询

GET请求 : http://127.0.0.1:9200/shopping/_search
附带JSON体如下:

{
	"query":{
		"match_all":{}
	},
	"from":0,
	"size":2
}

三、查询排序

如果你想通过排序查出价格最高的手机,
GET请求 : http://127.0.0.1:9200/shopping/_search
附带JSON体如下:

{
	"query":{
		"match_all":{}
	},
	"sort":{
		"price":{
			"order":"desc"
		}
	}
}