全部产品
Search
文档中心

云监控:where(筛选过滤)

更新时间:Apr 30, 2026

where 节点按条件表达式过滤数据行,仅保留满足条件的记录,丢弃不满足条件的行。

功能说明

where 节点对输入数据逐行执行条件判断,保留表达式结果为 true 的行。支持所有布尔表达式、比较运算符和内建函数。

适用场景

  • 过滤低质量数据,如文本过短、字段为空。

  • 按业务条件筛选特定类别的数据。

  • 基于上游计算结果做条件过滤,如 AI 评分低于阈值的记录。

节点配置

where 节点的基本配置格式如下:

{
  "id": "node_1",
  "type": "where",
  "parameters": {
    "filter": "<布尔表达式>"
  }
}

参数说明

参数

类型

必填

默认值

说明

filter

String

过滤条件表达式,结果须为布尔值。支持 AND/OR/NOT 组合。

支持的运算符=!=><>=<=LIKEINIS NULLIS NOT NULLBETWEENANDORNOT

输入/输出

输入要求

  • 上游节点输出的任意列数据。

  • 表达式中引用的字段必须存在于输入数据中。

输出列

列名

类型

来源

说明

全部原始输入列

--

透传

列结构不变,仅过滤行。

行数变化

M → N(M ≥ N):输出行数始终小于或等于输入行数。

使用示例

示例 1:按文本长度过滤

仅保留 question 字段长度大于 10 的记录:

{
  "id": "n3",
  "type": "where",
  "parameters": {
    "filter": "length(question) > 10"
  }
}

示例 2:组合条件过滤

同时满足文本长度和非空条件,过滤掉文本过短或输出为空的记录:

{
  "id": "n3",
  "type": "where",
  "parameters": {
    "filter": "length(question) > 10 AND output IS NOT NULL"
  }
}

示例 3:基于 AI 评分过滤

以下示例展示了一个典型的 Pipeline 流程:先使用 project 节点选择列,再通过 LLM 评估打分,最后用 where 节点过滤掉低分记录。

{
  "nodes": [
    {
      "id": "n1",
      "type": "project",
      "parameters": { "question": "a", "output": "c" }
    },
    {
      "id": "n2",
      "type": "llm-call",
      "parameters": {
        "prompt": "@eval/prompt.md",
        "fields": "question,output",
        "format": "json",
        "as": "eval"
      }
    },
    {
      "id": "n3",
      "type": "where",
      "parameters": {
        "filter": "json_extract_scalar(eval, '$.score') >= '3'"
      }
    }
  ]
}

示例 4:基于文档统计过滤

先计算文档统计指标,再过滤掉过短的文本。该流程先用 project 节点选择列,然后使用 doc-stats 节点计算文本统计信息,最后基于字符长度进行过滤。

{
  "nodes": [
    {
      "id": "n1",
      "type": "project",
      "parameters": { "question": "a", "output": "c" }
    },
    {
      "id": "n2",
      "type": "doc-stats",
      "parameters": { "field": "question" }
    },
    {
      "id": "n3",
      "type": "where",
      "parameters": {
        "filter": "json_extract_scalar(__doc_stats, '$.doc_len_char') > '10'"
      }
    }
  ]
}

注意事项

常用过滤表达式

场景

表达式示例

过滤 LLM 评估结果

json_extract_scalar(eval, '$.score') >= 4

过滤文本长度

length(question) > 10

复合条件过滤

length(question) > 5 AND category = 'tech'

边界与异常行为

场景

行为

filter 缺失或为空

校验失败,必须提供过滤条件。

表达式中引用的字段不存在

运行时报错。

表达式结果不是布尔值

运行时报错。

表达式语法错误

运行时报错。

所有行均不满足条件

输出空数据集,后续节点正常处理空输入。