EasySearch Rules 规则语法速查手册

围绕地域标签、情感标签、人名标签三大企业标注场景,系统梳理规则编写核心语法。


一、规则结构

go 复制代码
expression\t#offset#description

通过 _import API 导入时只需提供 expressiondescription,系统自动分配 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

九、特殊字符转义速查

含以下字符的字面值 需加引号:-``&``|``( )``[ ]``{ } 及空格。

经验法则:规则中出现可能引起歧义的字符,一律加引号。


十、规则编写建议

  1. 先简后繁:从纯关键词 OR 开始,逐步加字段限定和 near

  2. 标题优先title(关键词) 精准度远高于全文匹配

  3. near 替代 and:同一语义场景下,near 能显著降低误报率

  4. NOT 排除干扰 :情感标签需排除假设性语境(and not (预测 or 如果 or 假设)

  5. 正则处理变体 :人名、型号等模糊匹配优先用 author("张.*") 形式


Easysearch 审计日志实战:谁访问了你的集群?

Easysearch 专属官方网站上新啦!

Easysearch------一款面向企业级场景打造的国产搜索引擎

Easysearch 智能助手的 Web 端升级实战

Easysearch------Elasticsearch 国产化替代方案!

Elasticsearch 国产化替代 ------信创政策到技术选型的全面指南调研报告 V1.0

相关推荐
GISer_Jing2 小时前
AI Agent操作系统架构师:Harness Engineer解析
前端·人工智能·ai·aigc
YMWM_2 小时前
print(f“{s!r}“)解释
开发语言·r语言
愤豆2 小时前
05-Java语言核心-语法特性--模块化系统详解
java·开发语言·python
bksczm2 小时前
文件流(fstream)
java·开发语言
NGC_66112 小时前
Java 线程池阻塞队列与拒绝策略
java·开发语言
英俊潇洒美少年2 小时前
css中专门用来提升渲染性能、减少重排重绘的属性
前端·css
小碗羊肉2 小时前
【从零开始学Java | 第二十二篇】List集合
java·开发语言
m0_716765232 小时前
C++提高编程--STL常用容器(set/multiset、map/multimap容器)详解
java·开发语言·c++·经验分享·学习·青少年编程·visual studio
天若有情6732 小时前
前端HTML精讲01:别再乱 div 一把抓,吃透语义化标签才是进阶第一步
前端·html