postgresql 在Postgres中查找白色分隔的字符串

wnrlj8wa  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(1)|浏览(146)

我在postgres中有一个character varying字段,其中包含一组以1空格分隔的字符串。例如:

  • --> one two three <--
  • --> apples bananas pears <--

我使用--><--来显示字符串的开始和结束(它们不是存储字符串本身的一部分)
我需要查询这个字段来找出整个字符串是否包含某个特定的单词(例如apple)。一个可能的查询是

SELECT * FROM table WHERE thefield LIKE '%apple%'

字符串
但是它很糟糕,并且不会缩放,因为只有当模式附加到字符串的开头时,b树索引才缩放,而在我的例子中,搜索到的字符串可以定位在字段的任何地方。
你建议如何处理这个问题?

tmb3ates

tmb3ates1#

首先考虑database-normalization
在使用当前设计时,使用trigram index支持查询。那会很快。
请参阅:

相关问题