≫ 向表中添加文档

在percolate表中添加规则

在一个percolate表中,存储了可查询规则的文档,并且必须遵循四个字段的确切模式:

字段 类型 描述
id 大整数 PQ规则标识符(如果省略,则将自动分配)
query 字符串 兼容percolate表的全文查询(可以为空)
filters 字符串 兼容percolate表的非全文字段的附加过滤器(可以为空)
tags 字符串 一个或多个用逗号分隔的标签字符串,可用于选择性地显示/删除保存的查询

其他任何字段名称都不受支持,并将触发错误。

警告: 通过SQL插入/替换JSON格式的PQ规则不会生效。换句话说,JSON特定的操作符(如match等)将被视为规则文本的一部分,应该与文档匹配。如果您更喜欢JSON语法,请使用HTTP端点而不是INSERT/REPLACE

‹›
  • SQL
  • JSON
  • PHP
  • Python
  • Python-asyncio
  • Javascript
  • Java
  • C#
  • Rust
📋
INSERT INTO pq(id, query, filters) VALUES (1, '@title shoes', 'price > 5');
INSERT INTO pq(id, query, tags) VALUES (2, '@title bag', 'Louis Vuitton');
SELECT * FROM pq;
‹›
Response
+------+--------------+---------------+---------+
| id   | query        | tags          | filters |
+------+--------------+---------------+---------+
|    1 | @title shoes |               | price>5 |
|    2 | @title bag   | Louis Vuitton |         |
+------+--------------+---------------+---------+

自动ID分配

如果没有指定ID,将自动分配ID。您可以阅读更多关于自动ID的内容这里

‹›
  • SQL
  • JSON
  • PHP
  • Python
  • Python-asyncio
  • Javascript
  • Java
  • C#
  • Rust
📋
INSERT INTO pq(query, filters) VALUES ('wristband', 'price > 5');
SELECT * FROM pq;
‹›
Response
+---------------------+-----------+------+---------+
| id                  | query     | tags | filters |
+---------------------+-----------+------+---------+
| 1657843905795719192 | wristband |      | price>5 |
+---------------------+-----------+------+---------+

SQL中没有模式

如果SQL INSERT命令中省略了模式,则预期以下参数:

  1. ID。可以使用0作为ID以触发自动ID生成。
  2. 查询 - 全文查询。
  3. 标签 - PQ规则标签字符串。
  4. 过滤器 - 属性的附加过滤器。
‹›
  • SQL
SQL
📋
INSERT INTO pq VALUES (0, '@title shoes', '', '');
INSERT INTO pq VALUES (0, '@title shoes', 'Louis Vuitton', '');
SELECT * FROM pq;
‹›
Response
+---------------------+--------------+---------------+---------+
| id                  | query        | tags          | filters |
+---------------------+--------------+---------------+---------+
| 2810855531667783688 | @title shoes |               |         |
| 2810855531667783689 | @title shoes | Louis Vuitton |         |
+---------------------+--------------+---------------+---------+

在PQ表中替换规则

要通过SQL替换现有PQ规则为新规则,只需使用常规的REPLACE命令。有一种特殊的语法?refresh=1,用于通过HTTP JSON接口替换定义在JSON模式下的PQ规则

‹›
  • SQL
  • JSON
📋
mysql> select * from pq;
+---------------------+--------------+------+---------+
| id                  | query        | tags | filters |
+---------------------+--------------+------+---------+
| 2810823411335430148 | @title shoes |      |         |
+---------------------+--------------+------+---------+
1 row in set (0.00 sec)
mysql> replace into pq(id,query) values(2810823411335430148,'@title boots');
Query OK, 1 row affected (0.00 sec)
mysql> select * from pq;
+---------------------+--------------+------+---------+
| id                  | query        | tags | filters |
+---------------------+--------------+------+---------+
| 2810823411335430148 | @title boots |      |         |
+---------------------+--------------+------+---------+
1 row in set (0.00 sec)
Last modified: August 28, 2025