【问题标题】:PostgreSQL fulltext search indexPostgreSQL全文搜索索引
【发布时间】:2018-02-13 16:49:50
【问题描述】:

我有一个带有文本字段的表格,我需要高效的全文搜索。我发现了一些技术,我想知道通过基于文本字段创建额外的 ts_vector 字段来扩展模式是否更好,或者我可以保存我的模式并以这种方式创建索引:

CREATE INDEX pgweb_idx ON pgweb USING GIN (to_tsvector('english', title || ' ' || body));

效率感有区别吗?

【问题讨论】:

    标签: postgresql indexing full-text-search


    【解决方案1】:

    这两种策略都行得通。如果您只有索引,则需要确保查询使用与索引中的 where 子句中的 exact 相同的表达式,否则将不会使用索引。例如。 where ts_vector('english', title) .... 不会使用该索引。

    带有 ts_vector() 的计算列需要自动更新触发器,因为 Postgres (还)没有持久化计算列。因此,在更新功能方面,“仅索引”解决方案可能会更快,因为它消除了触发器的开销。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 2016-06-18
      • 2013-03-09
      • 2020-03-07
      • 2014-01-05
      相关资源
      最近更新 更多