<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Rules on 极限科技 | INFINI Labs</title><link>https://infinilabs.cn/tags/Rules/</link><description>Recent content in Rules on 极限科技 | INFINI Labs</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Tue, 14 Apr 2026 20:00:00 +0800</lastBuildDate><atom:link href="https://infinilabs.cn/tags/Rules/index.xml" rel="self" type="application/rss+xml"/><item><title>同样 15,000 条重规则，Percolate Query 比 Easysearch 慢 21.8 倍——Heavy-OR 场景实测</title><link>https://infinilabs.cn/blog/2026/easysearch-rules-engine-vs-percolate-query-heavy-or-benchmark/</link><pubDate>Tue, 14 Apr 2026 20:00:00 +0800</pubDate><guid>https://infinilabs.cn/blog/2026/easysearch-rules-engine-vs-percolate-query-heavy-or-benchmark/</guid><description>15,000 条 heavy-OR 规则，200,000 条文档，同一台机器：Easysearch 在线规则引擎全流程 11.68 秒，Percolate Query 仅搜索阶段就跑了 254.30 秒——慢了 21.8 倍。
在&amp;quot;规则先存、文档后到&amp;quot;这类场景下，Percolate Query 的延迟会随规则数量和复杂度的增长快速恶化。规则涨到数千条后，每批文档匹配的耗时可以从秒级攀升至几分钟。这类问题换索引参数、调批次大小、精简 DSL，都治标不治本，根子在执行模型本身。
本文通过一组 heavy-OR 基准测试，量化两种方案的实际差距。
测试配置 # 测试在同一台主机上运行，使用同一套规则文本和文档样本。Percolate Query 的查询条件由相同规则翻译而来，保证两侧规则语义一致。
参数 值 规则总数 15,000 文档总数 200,000 批次大小 10,000 / 批 重规则数量 2,500 条大 OR 热点规则 单条大 OR 规模 随机 50 ～ 500 个 OR 条件 测试结果 # 路径 用时 纯写入 plain_bulk 6.</description></item></channel></rss>