在本体里,怎么写才算「查得到」
这一篇讲本体(Ontology)里搜索的语法,重点是正则(regex)查询:它能匹配什么、不能匹配什么、有哪些操作符。 学完你能写出既精确又不漏的查询串。
https://www.palantir.com/docs/foundry/ontology/search-syntax/
原始标题:Search syntax
一句话速览
在本体里,怎么写才算「查得到」:这一篇讲本体(Ontology)里搜索的语法,重点是正则(regex)查询:它能匹配什么、不能匹配什么、有哪些操作符。学完你能写出既精确又不漏的查询串。
在哪搜,以及这篇讲什么
在 Workshop 的 filter list 或 Object Explorer 的搜索框里搜。
你可以在本体的两个地方发起搜索:Workshop 里的 filter list(筛选列表)组件, 或 Object Explorer 里的搜索框(search bar)。
这一篇重点讲正则表达式(regex)搜索的语法。它的写法和常见的正则很像,但有几个关键差别—— 下面几节会逐条讲清,并用一个练习器让你亲手验证「这个查询到底命不命中」。
正则搜索的前提:属性要先被索引
字符串属性必须在 Ontology Manager 开启 regex 索引。
正则搜索不是默认就能用的,原文给了明确前提:
- 字符串属性必须被索引以支持正则搜索。
- 开启方式:在本体管理器(Ontology Manager)里,进入该对象类型的 Properties 标签 → 选 Interaction 标签 → 勾选 Enable regex queries。
三条铁律:和你想的不一样
整值匹配、不是子串、没有 ^ 和 $。
cat 只会命中正好等于 cat 的值,不会命中 concatenate。要做子串匹配,前后加 .*,例如 .*cat.*。^ 和 $ 锚点不支持^ 与 $ 是多余的,不支持。" 把一段变成「字面量分组」,里面的字符不再被当作正则操作符。例如 "v2.0" 只匹配字面的 v2.0;不加引号时 . 是通配符,可能误中 v2X0。支持的操作符
从通配到分组、字符集、转义,一表收尽。
| 操作符 | 含义 | 例子 |
|---|---|---|
. | 任意单个字符 | c.t → cat, cot, cut |
? | 前一个字符可选(0 或 1 次) | colou?r → color, colour |
+ | 前一个字符 1 次或多次 | go+d → god, good, goood(不含 gd) |
* | 前一个字符 0 次或多次 | go*d → gd, god, good, goood |
{} | 前一个字符重复次数区间 | go{2}d→good;go{2,}→≥2;go{2,4}d→2~4 |
| | 或(OR) | cat|dog → cat 或 dog |
() | 分组,让操作符作用于整组 | (un)?happy → happy, unhappy |
[] | 字符集(单字符);- 表范围;^ 开头表否定 | gr[ae]y→gray,grey;[a-z];[^0-9] |
" | 字面量分组 | "v2.0" → 仅字面 v2.0 |
\ | 转义;并提供简写类 | \d 数字;\s 空白;\w 词字符;\. 字面点 |
\d{3}-\d{4} 会匹配 555-1234、800-5678 这种格式;
\w+\s\w+ 会匹配「两个被空格分开的词」,如 hello world。要搜字面点,用 \.,如 example\.com。
动手演示:查询命中判断练习器
给出字段真实值与查询串,先猜命中与否,再验证。
下面每个练习都给出字段的真实值和一条查询串。请先判断它能否命中
(记住三条铁律:整值匹配、^ $ 默认可省、"..." 表字面量),再点「会命中 / 不会命中」看结果。
说明:本练习器按原文规则实现了一个迷你正则引擎——模式默认按整值匹配,"..." 视为字面量,
其余采用标准正则语义。仅用于教学直观感受,不保证与平台内部实现逐字节一致。
常见示例速查
把高频写法直接抄走。
| 想匹配 | 查询串 |
|---|---|
| 包含 cat 的任意值 | .*cat.* |
| color 或 colour | colou?r |
| good / goood(2~4 个 o) | go{2,4}d |
| cat 或 dog | cat|dog |
| gray 或 grey | gr[ae]y |
| 字面 v2.0(点不通配) | "v2.0" |
| 形如 555-1234 的号码 | \d{3}-\d{4} |
| example.com(点不误中) | example\.com |
一页带走
延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
常见问题速答 · FAQ
关于「在本体里,怎么写才算「查得到」」,读者最常问的几个问题。