我发现这篇关于重音不敏感的帖子:
Does PostgreSQL support “accent insensitive” collations?
但我们需要将它与不区分大小写结合起来.我们还需要使用索引,否则可能会影响性能.
有关大型数据库最佳方法的真实经验吗?
也许最简单,使表达式索引不区分大小写.
建立在引用答案中列出的函数f_unaccent():
> Does PostgreSQL support “accent insensitive” collations?
CREATE INDEX users_lower_unaccent_name_IDx ON users(lower(f_unaccent(name)));
然后:
SELECT *FROM usersWHERE lower(f_unaccent(name)) = lower(f_unaccent('João'));
或者你可以将lower()构建到函数f_unaccent()中,以得到像f_lower_unaccent()这样的东西.
或者(特别是如果你需要进行模糊模式匹配)你可以使用由上面函数构建的附加模块pg_trgm提供的三元组索引,它也支持IliKE.细节:
> LOWER LIKE vs iLIKE
我在referenced answer上添加了一个注释.
或者您可以使用附加模块citext:
> Deferrable,case-insensitive unique constraint
总结以上是内存溢出为你收集整理的PostgreSQL重音不区分大小写搜索全部内容,希望文章能够帮你解决PostgreSQL重音不区分大小写搜索所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)