elasticsearch 中文_2

本文深入探讨了Elasticsearch中的查询和过滤语句,包括term、terms、range、exists、missing、bool过滤,match、multi_match、bool查询等,以及如何结合查询与过滤条件。同时介绍了相关性排序、排序方式和评分标准,帮助理解查询执行过程。
摘要由CSDN通过智能技术生成

最重要的查询过滤语句

之前的那篇博客,主要是针对elasticsearch的整理。下面我个人觉得会非常实用。

term过滤

term 主要用于精确匹配哪些值,比如数字,日期,布尔值或not_analyzed的字符串

{“term”:{“age”:26}}
{“term”:{“date”:”2014-09-01”}}
{“term”:{“public”:true}}
{“term”:{“tag”:”full_text”}}

terms过滤

terms跟term有点类似,但terms允许指定多个匹配条件。如果某个字段指定了多个值,那么稳定需要一起去匹配:

{
“terms”:{
“tag”:[“search”,”full_text”,”nosql”]
}
}

range过滤

range过滤允许我们按照指定方位查找一批数据:

{
“range”:{
“age”:{
“gte”:20,
“lt”:30
}
}
}

操作符 意思
gt 大于
gte 大于等于
lt 小于
lte 小于等于

exists和missing过滤

exists和missing过滤可以用于查找稳定中是否包含指定字段或没有某个字段,类似于sql语句中is_null条件

{
“exists”:{
“field”:”titile”
}
}

bool过滤

bool 过滤可以用来合并多个过滤条件查询结果的布尔逻辑,它包含以下操作符:

操作符 意思
must 多个查询天剑的完全匹配 相当于and
must_not 多个查询条件的相反匹配,相当于not
should 至少有一个查询条件匹配,相当于or

{
“bool”:{
“must”:{“term”:{“folder”:”inbox”}},
“must_not”:{“term”:{“tag”:”spam”}},
“should”:[
{“term”:{“starred”:true}},
{“term”:{“unread”:true}}
]
}
}

match_all 查询

使用match_all 可以查询到所有文档,是没有查询条件下的默认语句。

match 查询

match查询是一个标准查询,不管你需要权文博查询还是精确查询基本上都要用到它。
如果你使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值