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
                }
            ]
        }
    }
}
相关推荐
阿里云大数据AI技术16 小时前
深度回顾 | 阿里云携手 Elastic 定义 Agent 时代搜索新范式,解锁 Search AI 核心生产力
elasticsearch·agent
你有医保你先上17 小时前
Elasticsearch Go 客户端
后端·elasticsearch·go
Elasticsearch18 小时前
你的 PromQL 查询现在可以在 Kibana 中运行了
elasticsearch
如来神掌十八式21 小时前
Elasticsearch的dsl语句学习
elasticsearch
南棱笑笑生1 天前
20260420给万象奥科的开发板HD-RK3576-PI适配瑞芯微原厂的Buildroot时使用ll命令
java·大数据·elasticsearch·rockchip
HUGu RGIN1 天前
探索Spring Cloud Config:构建高可用的配置中心
大数据·elasticsearch·搜索引擎
晓庆的故事簿1 天前
【无标题】
elasticsearch·jenkins
生万千欢喜心1 天前
linux 安装 Elasticsearch Kibana
linux·elasticsearch·jenkins
Java后端的Ai之路1 天前
SSH配置与GitHub项目拉取操作指南
elasticsearch·ssh·github·公钥
南棱笑笑生1 天前
20260420给万象奥科的开发板HD-RK3576-PI适配瑞芯微原厂的Buildroot时调通AP6256并实测网速109Mbits/sec
大数据·elasticsearch·搜索引擎·rockchip