我想创建一个全文搜索,在查询上接受表情符号,或者在文本上搜索其他类型的索引。例如,我有这样的文本:Playa @CobolIquique h'
和PostgreSQL在emojis上奇怪地解析它。
调试,使用SELECT * FROM ts_debug('english','Playa @CobolIquique h');
我有以下结果:
而且我不知道为什么令牌被认为是空间符号。如果我调试解析器SELECT * FROM ts_parse('default', 'Playa @CobolIquique h');
我只获得相同的令牌和令牌类型ts_token_type('default')
,那么就没有表情符号类型(或类似的东西)。那么,我如何创建一个解析器来正确地将字符串与空格分开并且不将emojis视为空格?或者如何创建可以在查询中使用表情符号的文本索引?
答案 0 :(得分:1)
要创建一个与默认解析器不同的新解析器,您应该是C程序员,并且应该编写自己的PostgreSQL extension。此扩展应定义以下功能:
start_function();
gettoken_function();
end_function();
lextypes_function();
headline_function(); // optional
作为示例,您可以检查pg_tsparser模块。