客观的:
- 使用 PostgreSQL FTS 创建全文搜索引擎。
填充tsvector:
我有一个 tsvector 列。为了填充 tsvector 列,我正在执行一个触发器,该触发器调用一个执行自定义 PL/Python 函数的过程。
后续步骤:
触发器和过程函数
它类似于https://www.postgresql.org/docs/10/textsearch-features.html#TEXTSEARCH-UPDATE-TRIGGERS触发器,它调用messages_trigger过程(用 plpgsql 编写)。
但我调用的不是coalesce(new.title,'')
and ,而是一个UDF,它具有文本数组作为输入参数。coalesce(new.body,'')
custom_udf(p_arr ARRAY)
错误:
在摄取数据期间,它会引发错误:
psycopg2.errors.UndefinedObject: type p_arr[] does not exist
问题:
Pl/Python 函数不允许使用ARRAY类型参数吗?
为了绕过这个问题,我正在对列表元素进行逗号分隔连接并将其传递给 custom_udf。在 custom_udf 中,我使用逗号分隔符拆分来取回列表。