Postgres - 全文搜索接受表情符号

时间:2016-09-27 15:03:01

标签: postgresql parsing full-text-search emoji

我想创建一个全文搜索,在查询上接受表情符号,或者在文本上搜索其他类型的索引。例如,我有这样的文本:Playa @CobolIquique h'和PostgreSQL在emojis上奇怪地解析它。

调试,使用SELECT * FROM ts_debug('english','Playa @CobolIquique h');我有以下结果:

Results 1

而且我不知道为什么令牌被认为是空间符号。如果我调试解析器SELECT * FROM ts_parse('default', 'Playa @CobolIquique h');我只获得相同的令牌和令牌类型ts_token_type('default'),那么就没有表情符号类型(或类似的东西)。那么,我如何创建一个解析器来正确地将字符串与空格分开并且不将emojis视为空格?或者如何创建可以在查询中使用表情符号的文本索引?

1 个答案:

答案 0 :(得分:1)

要创建一个与默认解析器不同的新解析器,您应该是C程序员,并且应该编写自己的PostgreSQL extension。此扩展应定义以下功能:

start_function();
gettoken_function();
end_function();
lextypes_function();
headline_function(); // optional

作为示例,您可以检查pg_tsparser模块。