ElasticSearch查询例子

1.中文模糊匹配,(分词匹配)

{
	"query": {
		"match": {
			"name": "张三"//匹配的字段和关键字
		}
	},
	"sort": {
		"price": { //排序的字段
			"order": "desc"  //倒序
		}
	},
    "size":20 //每页查询数量
}

2.中文模糊匹配,(不分词)

{
	"query": {
		"match_phrase": {
			"name": "张三" //匹配的字段和关键字
		}
	},
	"sort": {
		"price": {
			"order": "desc"
		}
	},
        "size":20
}

3.布尔查询

{
	"query": {
		"bool": {
			"must": [{//多字段匹配,两个必须同时匹配到
				"match": {
					"name":"屈"
				}
			}, {
				"match": {
					"bank":"中国"
				}
			}],
			"filter": {//同时满足字段
				"term": {//完全匹配
					"pay_status":"4"
				}
			},
			"must_not": [{//过滤匹配到这个关键字
				"match": {
					"phone":"2303"
				}
			}]
		}
	},
	"sort": {
		"price":{
			"order": "desc"
		}
	}
}

4.布尔查询

{
	"query": {
		"bool": {
			"should": [{//两个中满足一个即可匹配
				"match": {
					"name": "屈"
				}
			}, {
				"match": {
					"bank": "中国银行总行"
				}
			}],
			"filter": {
				"term": {
					"pay_status": 3
				}
			}
		}
	},
	"sort": {
		"spend_price": {
			"order": "desc"
		}
	}
}

5.多字段匹配,生成多个match查询

{
	"query": {
		"multi_match": {
			"fields": ["bank", "name"],
			"query": "工商",
			"fuzziness": "AUTO"
		}
	}
}

6.聚合查询

{
    "query": {//查询所有数据
    "match_all": {}
	},
	"aggs": {
    "group_by_name": {//根据pay_status分组
        "terms": {
            "field": "pay_status",
				"size": 10000,
				"order": {
                "price": "desc"
				}
			},
			"aggs": {
            "price": {
                "sum": {
                    "field": "price"//根据金额总和排序
					}
				}
			}
		}
	}
}

7.范围筛选

{
	"query": {
		"bool": {
			"must": [{
				"match": {
					"name": "屈"
				}
			}, {
				"range": {
					"price": {
						"gte": 1,//金额大于等于1
						"lte": 100金额小于等于100
					}
				}
			}]
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值