【发布时间】:2016-09-27 15:03:01
【问题描述】:
我想创建一个全文搜索,它接受查询中的表情符号,或其他类型的索引来搜索文本。例如,我有这样的文字:Playa ???????????? @CobolIquique h' 和 PostgreSQL 在表情符号上奇怪地解析它。
调试,使用SELECT * FROM ts_debug('english','Playa ???????????? @CobolIquique h');得到如下结果:
而且我不知道为什么令牌被认为是一个空格符号。如果我调试解析器SELECT * FROM ts_parse('default', 'Playa ???????????? @CobolIquique h');,我只会得到相同的标记,并且标记类型ts_token_type('default') 没有表情符号类型(或类似的东西)。那么,我怎样才能创建一个解析器来用空格正确分割字符串并且不将表情符号视为空格?或如何创建可以在查询中使用表情符号的文本索引?
【问题讨论】:
-
我不习惯全文搜索,但您是否尝试过使用不同的词典(如 Snowball)?请参阅postgresql.org/docs/current/static/textsearch-dictionaries.html 可能您必须自定义字典(请参阅上一个链接中的示例)。
-
是的,我尝试过使用不同的字典(我已经根据自己的需要构建了一个),但问题是前面的步骤,即解析器):
-
你试过
CREATE TEXT SEARCH PARSER和ALTER TEXT SEARCH PARSER吗? postgresql.org/docs/9.6/static/sql-createtsparser.html -
我已经阅读了该页面,但我不知道如何个性化解析器(或令牌),我将使用它一段时间
-
我相信解析器正确地标记了您的字符串,它只是无法将其转换为词位(这并不奇怪)。我认为您自己的解决方案(根据您的需要构建字典)是正确的解决方案?..
标签: postgresql parsing full-text-search emoji