围绕地域标签、情感标签、人名标签三大企业标注场景,系统梳理规则编写核心语法。
一、规则结构
go
expression\t#offset#description
通过 _import API 导入时只需提供 expression 和 description,系统自动分配 offset:

go
{ "expression": "北京 or 京城", "description": "地域_北京" }
二、逻辑操作符
| 操作符 | 别名 | 说明 |
|---|---|---|
and |
& |
同时满足 |
or |
` | ` |
not (二元) |
-``&! |
排除 |
优先级 :not(一元)> near > and > or
用括号 () 明确优先级:
go
(source(新华网) or source(人民网)) and title(北京 or 上海)
三、字段限定
| 语法 | 说明 | 示例 |
|---|---|---|
field(expr) |
任意位置子串匹配 | title(北京) |
field[expr] |
全字段精确匹配 | sentiment[正面] |
注意事项:
-
title/content是内置字段,无需声明 -
未声明的自定义字段默认当作
content处理 -
数值字段必须在编译时声明:
go
POST /_match_rules/repo/_compile
{ "fields": ["score", "heat"] }
四、正则表达式
| 语法 | 用途 | 示例 |
|---|---|---|
{``{regex}} |
简单正则 | {``{1[3-9]\d{9}}} 匹配手机号 |
field("regex") |
字段内正则 | author("张.*") |
[expr and/not ...] |
复合正则逻辑 | [author("张.*") and not author("张三丰")] |
⚠️ 字段内正则必须用双引号 ,
author(/张.*/)写法错误。
五、距离匹配(near)
go
A near/n B # A、B 间距 ≤ n,不限顺序
A near/+n B # A 在 B 之前,间距 ≤ n
A near/-n B # A 在 B 之后,间距 ≤ n
距离单位:每个汉字 / 英文单词 / 数字串 = 1。
near vs and 的区别:
go
# and:文章中两词出现即命中,可能毫不相关
北京 and 发布会
# near:限制词距,确保同一语境
北京 near/10 发布会
支持链式和组合写法:
go
(北京 or 京城) near/5 (经济 or GDP)
六、数值范围匹配
go
score(80, 100) # 正面评价区间
score(0, 40) # 负面评价区间
heat(10000, 99999)
字段必须为数值类型,且编译时需声明。
七、三大场景示例
地域标签

go
{ "expression": "北京 or 京城 or 首都 or 中关村", "description": "地域_北京" }
{ "expression": "深圳 or 鹏城 or 南山区 or 前海", "description": "地域_深圳" }
情感标签

go
{ "expression": "非常好 or 极佳 or 强烈推荐", "description": "正面_强烈好评" }
{ "expression": "一般 or 还行 or 中规中矩", "description": "中性_平淡评价" }
{ "expression": "严重不满 or 投诉 or 退款 or 维权", "description": "负面_强烈差评" }
人名标签

go
{ "expression": "author(\"张.*\") and source(清华大学 or 北京大学)", "description": "人名_高校学者姓张" }
{ "expression": "title(\"王.*\") and content(企业家 or CEO or 创始人)", "description": "人名_企业家姓王" }
八、常见错误速查
| 错误 | 错误写法 | 正确写法 |
|---|---|---|
- 被解析为 NOT |
2024-2025年报 |
"2024-2025年报" |
| 正则未加双引号 | author(/张.*/) |
author("张.*") |
| 数值字段未声明 | 编译时不传 fields | { "fields": ["score"] } |
| 分隔符用空格 | 北京 or 京城 地域_北京 |
表达式与描述之间用 Tab |
九、特殊字符转义速查
含以下字符的字面值 需加引号:-``&``|``( )``[ ]``{ } 及空格。
经验法则:规则中出现可能引起歧义的字符,一律加引号。
十、规则编写建议

-
先简后繁:从纯关键词 OR 开始,逐步加字段限定和 near
-
标题优先 :
title(关键词)精准度远高于全文匹配 -
near 替代 and:同一语义场景下,near 能显著降低误报率
-
NOT 排除干扰 :情感标签需排除假设性语境(
and not (预测 or 如果 or 假设)) -
正则处理变体 :人名、型号等模糊匹配优先用
author("张.*")形式
Easysearch------一款面向企业级场景打造的国产搜索引擎
