You need to enable JavaScript to run this app. 如何使用CQL实现标题以指定短语开头的页面搜索?
优惠活动
大模型
产品
解决方案
定价
更多

如何使用CQL实现标题以指定短语开头的页面搜索?

CQL标题匹配的正确实现方案

匹配所有以指定字符串开头的页面

此前尝试写法的失效原因

  • title = "Test Page*"
    CQL中等号运算符仅支持完全精确匹配,通配符不会触发模糊逻辑,只会返回标题和"Test Page*"字面完全一致的页面,无法达成需求。
  • title ~ "Test Page*"
    波浪线运算符的模糊匹配是全局包含逻辑,只要标题任意位置出现匹配字符串就会命中,不会强制要求字符串在标题开头,会把"(1) Test Page""Again Test Page"这类顺序不符的页面也检索出来。
  • title ~ "Test" AND title ~ "Page*"
    两个独立模糊条件做与判断,仅要求标题同时包含"Test"和以"Page"开头的片段,完全不限制片段先后顺序,会把"Page Test"这类顺序颠倒的页面误判为匹配结果。

正确实现写法

利用CQL支持的正则位置锚点固定字符串的起始位置,语句为:
title ~ "^Test Page.*"
匹配逻辑:

  • ^ 锚定字符串起始位置,强制要求"Test Page"必须出现在标题最开头
  • .* 匹配开头字符串后的任意长度任意内容,能命中"Test Page"、"Test Page (1)"、"Test Page Again"这类带任意后缀的目标页面
  • 会自动过滤"Test""Page""Page Test""(1) Test Page""Again Test Page"这类不满足前缀要求的非目标页面

匹配"Test Page (*)"结构的固定格式页面

该需求的核心是要求标题完全符合"Test Page ("为开头、后跟任意内容、以")"为结尾的结构,无前后冗余内容。

正确实现写法

注意正则中的特殊字符必须转义才能匹配字面文本,语句为:
title ~ "^Test Page \(.+\)$"
匹配逻辑:

  • ^ 锚定起始位置,强制标题从"Test Page ("片段开始
  • 转义后的\(匹配字面的左括号,不直接写括号是因为括号属于正则特殊语法,不转义会被解析为分组规则而非待匹配的文本
  • .+ 匹配括号内至少1个任意字符,避免匹配到"Test Page ()"这类空括号的无效场景
  • 转义后的\)$锚定标题结尾位置,强制标题最后一个字符为右括号,过滤"Test Page (1) 带额外内容"这类尾部带冗余信息的页面

该写法会精准返回Test Page (1)、Test Page (2)这类目标页面,自动过滤Test Page、Test Page Again、Test、Page、Page Test、(1) Test Page、Again Test Page这类非目标页面。


内容的提问来源于stack exchange,提问作者Synn Ko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.31 16:24:01