Elasticsearch简单问题小结

本文详细解析了Elasticsearch中terms与term的区别,以及filter与query的不同应用场景。介绍了在查询字段为单值时使用term,多值时使用terms。filter用于快速过滤,不计分且可缓存,而query则用于全文检索并计分。通过具体实例展示了如何结合两者提高搜索效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Elasticsearch简单问题小结

♠ ♥ ♦ ♣ 该文章仅为平时的笔记,非商用,如有侵权请联系博主删除 ♣ ♦ ♥ ♠

1、terms 和term 的区别

在查询的字段只有一个值的时候,使用term,在查询字段包含多个的时候才使用terms。

 "term":{
        "lang":1
        }

"terms":{
       "domain":[
       "dailymasala.co",
       "goldenmob.com"
       ]
    }

2、filter 和query的区别

(1)在query(查询)中,查询操作不仅仅会进行查询,还会计算分值,用于确定相关度;在filter(过滤器)中,查询操作仅判断是否满足查询条件。
(2)filter(过滤器)中,查询的结果可以被缓存。
(3)filter(过滤器)查询速度快(不需要计分。还有可以缓存)
(4)全文检索以及任何使用相关性评分的场景使用query检索,除此之外的其他使用filter过滤器过滤。
(5)一般用法:使用query进行全文检索后,对全文检索的结果用filter检索。
(6)例子:

GET /_search
{
  "query": { 
    "bool": { 
      "must": [
        { "match": { "name":   "albert"        }}, 
        { "match": { "content": "science" }}  
      ],
      "filter": [ 
        { "term":  { "country": "cn" }}, 
        { "range": { "date": { "gte": "2200-10-08" }}} 
      ]
    }
  }
}

参考:https://blog.youkuaiyun.com/laoyang360/article/details/80468757

仅作为日常笔记使用,有点简单,大家有什么想法也可以交流哟~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值