≫ Добавление документов в таблицу

Добавление правил в percolate таблицу

В percolate таблице хранятся документы, которые являются правилами percolate запросов, и они должны строго соответствовать схеме из четырёх полей:

поле тип описание
id bigint Идентификатор правила PQ (если опущен, будет назначен автоматически)
query string Полнотекстовый запрос (может быть пустым), совместимый с percolate таблицей
filters string Дополнительные фильтры по не-полнотекстовым полям (может быть пустым), совместимые с percolate таблицей
tags string Строка с одним или несколькими тегами, разделёнными запятыми, которые могут использоваться для выборочного отображения/удаления сохранённых запросов

Любые другие имена полей не поддерживаются и вызовут ошибку.

Внимание: Вставка/замена правил PQ в формате JSON через SQL не будет работать. Другими словами, специфичные для JSON операторы (match и т.д.) будут рассматриваться просто как часть текста правила, который должен совпадать с документами. Если вы предпочитаете синтаксис JSON, используйте HTTP endpoint вместо 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 можно прочитать здесь.

‹›
  • 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. Query - Полнотекстовый запрос.
  3. Tags - Строка тегов правила PQ.
  4. Filters - Дополнительные фильтры по атрибутам.
‹›
  • 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 таблице

Чтобы заменить существующее правило PQ на новое в SQL, просто используйте обычную команду REPLACE. Существует специальный синтаксис ?refresh=1 для замены правила PQ, определённого в режиме JSON, через HTTP JSON интерфейс.

‹›
  • 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