《Elasticsearch通用查询方案(一):开篇与基础概念》

Elasticsearch通用查询方案

《通用查询方案(一):开篇与基础概念》

《通用查询方案(二):QueryConditionBuilders 工具类》

《通用查询方案(三):QueryBuilderFactory 组件》

《通用查询方案(四):QueryCondition 使用指南与实战》



引言

众所周知,Elasticsearch支持丰富的各类查询,同时Elasticsearch广泛应用于我们日常开发工作中。此时,一个高效、灵活且易于维护的通用查询能力堪称提升程序员体验、保障系统性能的关键所在。本文将尝试深入探索一种通用查询技术方案,旨在提供一种标准化、可扩展的方式来构建查询功能。它通过一系列精心设计的组件和规范,使得开发者能够轻松地创建各种类型的查询条件,并将其转换为Elasticsearch能够理解和执行的查询语句。这种方案的核心优势在于其灵活性,能够适应不同业务场景下的查询需求,无论是简单的单条件查询,还是复杂的多条件逻辑嵌套、组合查询,都能游刃有余地应对。


本篇文章介绍通用方案的整体核心组件基石:词汇表、容器

一、查询条件操作符枚举(OperatorEnum)

这是整个查询体系的 “词汇表”,定义了一系列的预定义的丰富多样的操作符,用于表示不同类型的查询或者逻辑组合操作

1、条件查询类:

EQ:用于精准匹配,像查找特定用户的用户名是否等于某个确切值;
NE:用于精准匹配,像查找特定用户的用户名不等于某个确切值;
GT、GTE、LT、LTE:专注于数值范围比较,例如筛选出价格高于某个阈值的商品;
NOT_IN、IN:把控集合成员关系,判断某个元素是否在指定集合内;
RANGE:灵活处理区间查询;
WILDCARD:借助通配符实现模糊匹配;
CONTAINS:检查字段是否包含特定子串;
EXISTS:聚焦字段是否存在;
NESTED_EQ :嵌套对象等于条件下的查询;

2、逻辑组合类:

MUST、MUST_NOT、SHOULD:用于构建复杂多条件逻辑

以上每个枚举成员清晰界定了一种数据筛选规则,为后续查询条件的精准构建奠定基础,同时还支持持续扩展操作符枚举,比如嵌套条件的等于、大于、小于等等;通过使用枚举,我们不仅提高了代码的可读性,还能在编译时进行类型检查,减少错误的发生。

代码如下:

public enum OperatorEnum {
   
   
    EQ("eq", "等于)"),
    GT("gt", "大于"),
    GTE("gte", "大于等于"),
    LT("lt", "小于"),
    LTE("lte", "小于等于"),
   
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值