filter

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Processor

type Processor struct {
	// contains filtered or unexported fields
}

Processor 用于基于 *query.Builder 构建 InfluxDB 风格的 WHERE 子句

func NewProcessor

func NewProcessor() *Processor

NewProcessor 返回 InfluxDB 用的 Processor

func (Processor) Contains

func (poc Processor) Contains(builder *query.Builder, field, value string) *query.Builder

Contains (LIKE %val%) 使用正则匹配

func (Processor) EndsWith

func (poc Processor) EndsWith(builder *query.Builder, field, value string) *query.Builder

EndsWith 结束于

func (Processor) Equal

func (poc Processor) Equal(builder *query.Builder, field, value string) *query.Builder

Equal 等于

func (Processor) Exact

func (poc Processor) Exact(builder *query.Builder, field, value string) *query.Builder

Exact 等值比较

func (Processor) GT

func (poc Processor) GT(builder *query.Builder, field, value string) *query.Builder

GT 大于

func (Processor) GTE

func (poc Processor) GTE(builder *query.Builder, field, value string) *query.Builder

GTE 大于等于

func (Processor) In

func (poc Processor) In(builder *query.Builder, field, value string, values []string) *query.Builder

In 包含

func (Processor) InsensitiveContains

func (poc Processor) InsensitiveContains(builder *query.Builder, field, value string) *query.Builder

InsensitiveContains 不区分大小写

func (Processor) InsensitiveEndsWith

func (poc Processor) InsensitiveEndsWith(builder *query.Builder, field, value string) *query.Builder

InsensitiveEndsWith 不区分大小写

func (Processor) InsensitiveExact

func (poc Processor) InsensitiveExact(builder *query.Builder, field, value string) *query.Builder

InsensitiveExact 不区分大小写的等值比较(使用 regex ^val$ + i)

func (Processor) InsensitiveRegex

func (poc Processor) InsensitiveRegex(builder *query.Builder, field, value string) *query.Builder

InsensitiveRegex 不区分大小写的正则

func (Processor) InsensitiveStartsWith

func (poc Processor) InsensitiveStartsWith(builder *query.Builder, field, value string) *query.Builder

InsensitiveStartsWith 不区分大小写

func (Processor) LT

func (poc Processor) LT(builder *query.Builder, field, value string) *query.Builder

LT 小于

func (Processor) LTE

func (poc Processor) LTE(builder *query.Builder, field, value string) *query.Builder

LTE 小于等于

func (Processor) NotEqual

func (poc Processor) NotEqual(builder *query.Builder, field, value string) *query.Builder

NotEqual 不等于

func (Processor) NotIn

func (poc Processor) NotIn(builder *query.Builder, field, value string, values []string) *query.Builder

NotIn 不包含 —— 通过多个 != 条件构造等价的 AND 表达式

func (Processor) Process

func (poc Processor) Process(builder *query.Builder, op paginationV1.Operator, field, value string, values []string) *query.Builder

Process 根据 operator 在 builder 上追加对应的 filter 并返回 builder。 field 为字段路径(可能包含点),value 为单值,values 为额外的分割值列表(如 IN)。

func (Processor) Range

func (poc Processor) Range(builder *query.Builder, field, value string, values []string) *query.Builder

Range BETWEEN 范围查询 — 尝试解析为两个值

func (Processor) Regex

func (poc Processor) Regex(builder *query.Builder, field, value string) *query.Builder

Regex 直接使用用户提供的正则

func (Processor) Search

func (poc Processor) Search(builder *query.Builder, field, value string) *query.Builder

Search 简单全文搜索,fallback 为 contains(Regex %val%)

func (Processor) StartsWith

func (poc Processor) StartsWith(builder *query.Builder, field, value string) *query.Builder

StartsWith 开始于

type StructuredFilter

type StructuredFilter struct {
	// contains filtered or unexported fields
}

StructuredFilter 将 FilterExpr 转为基于 InfluxDB 的 查询条件,使用 Processor 在 *query.Builder 上追加 WHERE 子句

func NewStructuredFilter

func NewStructuredFilter() *StructuredFilter

NewStructuredFilter 创建 InfluxDB 用的 StructuredFilter

func (StructuredFilter) BuildSelectors

func (sf StructuredFilter) BuildSelectors(builder *query.Builder, expr *paginationV1.FilterExpr) (*query.Builder, error)

BuildSelectors 将 expr 的条件应用到 builder 上;若 builder 为 nil 则新建一个。 AND 类型会把所有子条件逐一通过 Processor.Process 添加(AND 语义)。 OR 类型仅在组内只有单个条件或单个子组时处理该单项,复杂 OR 跳过(query.Builder 不支持复杂 OR)。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL