我正在寻找一种支持良好性能不区分大小写+重音不敏感搜索的方法.到目前为止,我们使用MSSql服务器没有问题,我们必须使用Oracle OracleText,现在我们需要在PostgreSQL上使用它.
我发现这篇关于重音不敏感的帖子:
PostgreSQL是否支持"重音不敏感"排序?
但我们需要将它与不区分大小写结合起来.我们还需要使用索引,否则可能会影响性能.有关大型数据库最佳方法的真实经验吗?
postgresql indexing database-design full-text-search case-insensitive
在PostgreSQL手册中,它说它citext只是一个TEXT通过调用实现数据类型的模块LOWER():
citext模块提供不区分大小写的字符串类型citext.从本质上讲,它在比较值时内部调用较低.否则,它的行为几乎与文本完全相同.
另一方面,在文件结束时,它说:
citext不如文本有效,因为运算符函数和B树比较函数必须复制数据并将其转换为小写以进行比较.但是,使用lower来获得不区分大小写的匹配稍微有效一点.
所以我很困惑,如果它使用它LOWER()怎么能"比使用更低的效率略高"?