buildFtsTriggersSql()
function buildFtsTriggersSql(
table,
fields,
options?): string;
Defined in: packages/rxdb-adapter-pglite/src/fts/build-fts-triggers.ts:43
生成 PostgreSQL FTS 同步 trigger(函数 + trigger)。
与 SQLite FTS5 _ai/_ad/_au 三 trigger 写虚拟表的方案不同,PG 用一个
BEFORE INSERT OR UPDATE trigger 直接在行写入前计算 tsvector 写到 _fts 列:
这样既省去 AFTER trigger 的额外写入,也避免了删除/虚拟表同步的开销。
返回 SQL 包含 3 条语句(以 ; 分隔):
CREATE OR REPLACE FUNCTION "<table>__fts_update"()—— 计算并写入NEW."_fts"DROP TRIGGER IF EXISTS "<table>__fts_trg" ON "<table>"—— 幂等清理CREATE TRIGGER "<table>__fts_trg" BEFORE INSERT OR UPDATE ON "<table>" FOR EACH ROW EXECUTE FUNCTION "<table>__fts_update"()
字段集合必须与 buildCreateFtsTableSql 的 fields 一致,否则查询时
漏字段或多字段都会让 ranking 失真。
Parameters
| Parameter | Type | Description |
|---|---|---|
table | string | 业务表名 |
fields | readonly FtsField[] | 参与 FTS 的字段(顺序影响 concat_ws 中字段拼接顺序,对 ranking 有轻微影响) |
options? | FtsOptions | 可选 regconfig,默认 DEFAULT_FTS_REGCONFIG |
Returns
string
多条 SQL 拼接(以 ; 分隔)
Throws
当 fields 为空时抛出