我在postgresql中使用postgresql函数时遇到了一个奇怪的问题。
如果输入文档(文本)包含表情符号,则输出向量不符合逻辑:
当任何表情符号出现时,匹配错误
SELECT to_tsvector('simple', 'This day is a good day. Šodiena ir laba ir diena');
-- returns ' ':4 'aba ':9 'ay ':2 'ay.':6 'his ':1 'iena':11 'odiena ':7 'ood ':5 'r ':8,10 's ':3正常匹配
SELECT to_tsvector('simple', 'This day is a good day. Šodiena ir laba ir diena')
-- 'a':4 'day':2,6 'diena':11 'good':5 'ir':8,10 'is':3 'laba':9 'this':1 'šodiena':7正如你所看到的,当一个表情符号出现时,匹配这个词就完全消失了。我使用的是UTF-8字符。
CLIENT_ENCODING和SERVER_ENCODING都是UTF8
default_text_search_config是pg_catalog.english
问题:如何使用包含表情符号的文本获得有意义的结果
发布于 2021-03-16 12:09:11
我无法复制这种差异。
richard=> SELECT to_tsvector('simple', 'This day is a good day. Šodiena ir laba ir diena');
to_tsvector
------------------------------------------------------------------------------------
'a':4 'day':2,6 'diena':11 'good':5 'ir':8,10 'is':3 'laba':9 'this':1 'šodiena':7
(1 row)
richard=> SELECT to_tsvector('simple', 'This day is a good day. Šodiena ir laba ir diena');
to_tsvector
------------------------------------------------------------------------------------
'a':4 'day':2,6 'diena':11 'good':5 'ir':8,10 'is':3 'laba':9 'this':1 'šodiena':7
(1 row)我正在使用"english“默认文本搜索目录和UTF8 client+server编码"en_GB.UTF-8”区域设置在Debian上运行PG v13.2。
我不认为文本搜索设置会有什么影响,因为您已经显式地指定了“简单”。
也许有什么东西没有以UTF8的形式到达数据库?
https://stackoverflow.com/questions/66653062
复制相似问题