elasticsearch查询

(1)简单查询

复制代码
curl -XGET http://127.0.0.1:9201/_search
curl -XGET http://127.0.0.1:9201/test231208/_search
curl -XGET http://127.0.0.1:9201/test231208/_doc/_search
curl -XGET http://127.0.0.1:9201/test231208/_doc/id

(2)match、match_all、multi_match查询,模糊查询,即先分词后查询;match_all查询全部数据;match针对一个field做查询,multi_match针对多个field做查询,任意一个字段符合条件就行

复制代码
curl -XGET http://127.0.0.1:9201/test231208/_search -d 
'{
	"query": {
		"match": {
			"name": "jerry"
		}
	}
}'
curl -XGET http://127.0.0.1:9201/test231208/_search -d 
'{
	"query": {
		"match_all": {}
	}
}'
curl -XGET http://127.0.0.1:9201/test231208/_search -d 
'{
	"query": {
		"multi_match": {
			"query": "jerry",
			"fields": [
				"name"
			]
		}
	}
}'

(3)term查询或range查询,精确查询

复制代码
curl -XGET http://127.0.0.1:9201/test231208/_search -d 
'{
	"query": {
		"term": {
			"age": 2
		}
	}
}'
curl -XGET http://127.0.0.1:9201/test231208/_search -d 
'{
	"query": {
		"range": {
			"age": {
				"gte": 3,
				"lte": 4
			}
		}
	}
}'

(4)bool查询,一个或多个查询子句的组合,must表示必须匹配(类似与)、should表示选择性匹配(类似或)、must_not表示必须不匹配(类似非)、filter表示过滤条件

复制代码
curl -XGET http://127.0.0.1:9201/test231208/_search -d 
'{
	"query": {
		"bool": {
			"must": [
				{
					"match": {
						"name": "tom"
					}
				},
				{
					"match": {
						"age": 2
					}
				}
			],
			"should": [
				{
					"match": {
						"name": "tom"
					}
				},
				{
					"match": {
						"name": "jerry"
					}
				}
			],
			"must_not": [
				{
					"match": {
						"name": "diana"
					}
				}
			],
			"filter": [
				{
					"range": {
						"age": {
							"gte": 2,
							"lte": 4
						}
					}
				}
			]
		}
	}
}'

(5)查询部分属性字段、分页和排序

复制代码
curl -XGET http://127.0.0.1:9201/test231208/_search -d 
'{
	"query": {
		"match_all": {}
	},
	"_source": {
		"includes": [
			"age",
			"name"
		]
	},
	"from": 0,
	"size": 10,
	"sort": [
		{
			"age": {
				"order": "asc"
			}
		}
	]
}'

(6)group by分组

复制代码
curl -XGET http://127.0.0.1:9201/test231208/_search -d 
'{
	"query": {
		"range": {
			"gmt_create": {
				"gte": "20230101000000",
				"lte": "20240101000000"
			}
		}
	},
	"from": 0,
	"size": 0,
	"sort": [],
	"aggs": {
		"group_by_key": {
			"terms": {
				"field": "age"
			}
		}
	}
}'

响应体,如下

复制代码
{
    "took": 7,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 2,
            "relation": "eq"
        },
        "max_score": null,
        "hits": []
    },
    "aggregations": {
        "group_by_key": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": 2,
                    "doc_count": 1
                },
                {
                    "key": 4,
                    "doc_count": 1
                }
            ]
        }
    }
}
相关推荐
五阿哥永琪7 小时前
Git 开发常用命令速查手册
大数据·git·elasticsearch
Elastic 中国社区官方博客11 小时前
开始使用 Elastic Agent Builder 和 Strands Agents SDK
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索
Elasticsearch12 小时前
Elasticsearch:在分析过程中对数字进行标准化
elasticsearch
微扬嘴角14 小时前
Springcloud篇9-Elasticsearch-3(数据聚合、自动补全、数据同步、集群)
elasticsearch·spring cloud
真上帝的左手14 小时前
13. 搜索引擎-ES-ES集群
elasticsearch·搜索引擎·jenkins
济南java开发,求内推14 小时前
ES升级至:8.15.3
elasticsearch
真上帝的左手14 小时前
13. 搜索引擎-ES-自动补全
elasticsearch·搜索引擎
真上帝的左手14 小时前
13. 搜索引擎-ES-DSL(Domain Specific Language)
elasticsearch·搜索引擎·数学建模
AI逐月1 天前
Git 彻底清除历史记录
大数据·git·elasticsearch