gpt4 book ai didi

postgresql - 搜索土耳其语字符

转载 作者:行者123 更新时间:2023-12-03 02:07:19 25 4
gpt4 key购买 nike

我在使用土耳其语大写和小写的相似搜索和 Elasticsearch 进行数据库搜索时遇到问题。

例如,我有posts表,其中包含标题为'DENEME YAZI'的帖子。

如果我运行此查询:

select * from posts where title like '%deneme%';

要么:
select * from posts where title like '%YAZI%';

我得到正确的结果,但是如果我运行:
select * from posts where title like '%yazı%';

它不返回任何记录。我的数据库编码是 tr_TR.UTF-8
如何在不输入正确字词的情况下获得正确的结果?

最佳答案

您必须使用ILIKE进行不区分大小写的匹配:

select * from posts where title ilike '%yazı%';

但是,在土耳其语区域设置中有一些特殊的规则。 'ı' 的大写字母是 'I' 。但并非相反。 'I' 的小写字母是 'i' :
db=# SELECT lower(upper('ı'));
lower
-------
i

您可以通过在 upper()表达式的任一侧应用 LIKE来解决此问题:
select upper('DENEME YAZI') like ('%' || upper('yazı') || '%');

关于postgresql - 搜索土耳其语字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24295566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com