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

相关推荐
ZC跨境爬虫2 小时前
跟着 MDN 学CSS day_39:(Flexbox 弹性盒子核心机制)
前端·css·ui·html·tensorflow
小陈同学呦2 小时前
前端如何处理订单状态导航的数据竞态问题
前端·javascript
开发者每周简报2 小时前
网海三部曲·无名宗师传
javascript·人工智能
喵个咪2 小时前
GoWind Toolkit 前端代码生成|Vue3(ElementPlus/Vben)、React(AntDesign)全自动一键生成教程
前端·vue.js·react.js
isyangli_blog2 小时前
OpenDayLight (Carbon 版本) 启动与组件安装
开发语言·php
vb2008112 小时前
FastAPI APIRouter
开发语言·python
Benszen2 小时前
KVM虚拟化解决方案
开发语言·perl
会编程的土豆2 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
東雪木2 小时前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
杨充3 小时前
1.3 浮点型数据设计灵魂
开发语言·python·算法