Elasticsearch Query DSL概述与查询、过滤上下文

本文介绍了Elasticsearch的Query DSL,包括叶子查询和复合查询子句。重点阐述了查询上下文与过滤上下文的区别,前者计算匹配度和分数,后者仅判断匹配。过滤上下文的查询子句常用于结构化数据过滤,并能被缓存以提升性能。
摘要由CSDN通过智能技术生成

从本节开始,先详细介绍Elasticsearch Query DSL语法,该部分是SearchAPI的核心基础之一。

Elasticsearch提供了一个基于JSON的完整查询DSL(领域特定语言)来定义查询。把查询DSL看作是查询的AST(抽象语法树),由两种类型的子句组成:

  • Leaf query clauses(叶查询字句)

叶子查询子句指在特定的字段中寻找特定的值,例如匹配、范围查询或term(完全匹配)。这些查询 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 可以单独使用。

  • Compound query clauses(复合查询字句)

复合查询字句包装其他叶子或复合字句,用于以逻辑方式组合多个查询(如bool、dis_max)或改变他们的行为(如常量查询)。

[](()1、query and filter context(查询与过滤上下文)


查询子句的行为取决于它是在查询上下文中使用还是在过滤上下文中使用:

  • 查询上下文

在查询上下文中使用的查询子句,查询字句回答了“这个文档与这个查询子句(查询条件)匹配得有多好?”除了决定文档是否匹配之外,查询子句还计算一个分数,表示相对与其他文档该文档匹配的程度。每当一个查询子句传递给查询参数(query)时,查询上下文就会生效,比如搜索API中的查询参数。

  • 过滤上下文

在过滤上下文中,查询子句回答“这个文档是否匹配这个查询子句?”答案是简单的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值