elasticsearch入门之高级查询

温馨链接

高级查询

子条件查询

特定字段查询所指特定值

Query context

在查询过程中,除了判断文档是否满足查询条件外,ES还会计算一个_score来标识匹配的程度,旨在判断目标文档和查询条件匹配的有多好

全文本查询

针对文本类型数据

  • 数据
    在这里插入图片描述
  • 全匹配(match):将name带有“浴”与“板”的全部查出来

{
“query”:{
“match”:{
“name”:“浴板”
}
}
}

在这里插入图片描述

  • 习语匹配(match_phrase):只匹配name带有“浴板”这个词

{
“query”:{
“match_phrase”:{
“name”:“浴板”
}
}
}
在这里插入图片描述

  • 多字段模糊匹配multi_match
    fields里面的字段都要包含“China”

{
“query”:{
“multi_match”:{
“query”:“China”,
“fields”:[“name”,“country”]
}
}
}

  • 语法查询query_string:也可以结合field关键字
    OR、AND

{
“query”:{
“query_string”:{
“query”:“霸 OR 池”
}
}
}

字段级别查询

针对结构化数据,如数字、日期等
关键词:term

{
“query”:{
“term”:{
“age”:“18”
}
}
}

  • 字段范围查询
  • gte:大于等于
  • gt:大于
    查询age在18到19之间

{
“query”:{
“range”:{
“age”:{
“gte”:18,
“lte”:19
}
}
}
}

Filter context

在查询过程中,只判断该文档是否,满足条件,只有Yes或者No
ES会将数据缓存,查询比Query快

{
“query”:{
“bool”:{
“filter”:{
“term”:{
“age”:“20”
}
}
}
}
}

  • 匹配度都为0
    在这里插入图片描述

复合条件查询

以一定的逻辑组合子条件查询

固定分数查询
  • boost:查询指定分数

{
“query”:{
“constant_score”:{
“filter”:{
“match”:{
“name”:“浴缸”
},
“boost”:1
}
}
}
}

布尔查询
  • must:与的逻辑

{
“query”:{
“bool”:{
“must”:[
{
“match”:{
“name”:“浴霸”
}
},{
“match”:{
“age”:“20”
}
}
]
}
}
}

  • should:或的逻辑

{
“query”:{
“bool”:{
“should”:[
{
“match”:{
“name”:“浴霸”
}
},{
“match”:{
“age”:“20”
}
}
]
}
}
}

  • must_not:非的逻辑

{
“query”:{
“bool”:{
“must_not”:[
{
“match”:{
“name”:“浴霸”
}
},{
“match”:{
“age”:“20”
}
}
]
}
}
}

…more

查询关键词结合使用。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值