ES笔记 二

第一部分

结构化查询 Query DSL

多表现形式的查询语言。在一个简单的json接口中使用结构化查询来展现lucene绝大多数能力。查询更加灵活,精准,易读。query参数match_all匹配所有

get /_search
{ "query": YOUR_QUERY_HERE }
get /_search
{ "query":{
		"match_all": {}
	}
}
get /_search
{ 
"query":{
		"match": {
			"filed": "value"
		}
	}
}

合并多子句

叶子子句:(leaf clauses) match等可以用于查询字符串与一个字段(或多个字段)进行比较

复合子句:(compound)用以合并其他子句bool

参数说明
must一样
must_not不一样
should多个条件中有一个 匹配
{
	"bool": {
		"must": { "match": {"name": "weixiao"}}
		"must_not": { "match": {"name": "lf"}}
		"should": { "match": {"name": "xi"}}
	}
}

复合子句可以层层嵌套

过滤/查询

字段说明列子
term过滤精准匹配,string、date、boolean{“term”: {“name”: “weixiao”}}
{“trem”: {“date”: “2022-01-01”}}
terms精准过滤多个匹配{“terms”:{ “name”: [“weixiao”,“lf”,“xx” ]}}
range范围过滤{“range” : { “age”: { “gte”: 20 , “lt”: 30 }}}
exists 、 missing查找文档中是否 包含、不包含 某个字段{ “exists”:{ “field”: { “value” }}}
bool过滤 boolean 判断看上面
match_all查询所有,所有字段 _score 都为1
match标准查询,全文本、模糊查询都用得到
multi_match做多字段搜索{ “multi_match”: { “query”: “value”, “fields”: [“name”,“remark”] } }
get /_search
{ "query":{
{
		"filtered": {
			"query": {"match": {"age": 30 }},
			"filter": {"term": {"name": "weixiao"}}
		}
}
}}

查询+过滤 。 查询出年龄30岁,名字不是 weixao的数据。

排序

sort参数 es默认是倒序,排序对性能有一定的影响

get /_search
{
	"query":{},
	"sort": {"date": {"order": "desc"}}
}

date 排序相等时,用_score排序

get /_search
{
	"query":{},
	"sort": [
			{"date": {"order": "desc"}}
			{"_score": {"order": "desc"}}
			]
}

底部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值