当前位置:   article > 正文

PostgreSQL 中强大的全文搜索_postgresql 全文检索

postgresql 全文检索

这篇博文将引导您了解使用PostgreSQL实现足够好的 全文搜索所需的基本部分。

剧透警告:对于那些寻找“好的,只需向我展示一个全文搜索,在 Postgres 中不到 20 行的排名和模糊搜索”的好奇的人,所以你去:

  1. SELECT
  2. courses.id,
  3. courses.title,
  4. courses.description,
  5. rank_title,
  6. rank_description,
  7. similarity
  8. FROM
  9. courses,
  10. to_tsvector(courses.title || courses.description) document,
  11. to_tsquery('sales') query,
  12. NULLIF(ts_rank(to_tsvector(courses.title), query), 0) rank_title,
  13. NULLIF(ts_rank(to_tsvector(courses.description), query), 0) rank_description,
  14. SIMILARITY('sales', courses.title || courses.description) similarity
  15. WHERE query @@ document OR similarity > 0
  16. ORDER BY rank_title, rank_description, similarity DESC NULLS LAST

但是,如果您需要了解上述 SQL 语句到底在做什么,让我向您解释一下 PostgreSQL 中的上下文和 FTS(全文搜索)基础知识。

背景很重要

很多年前,我读过这篇很棒的博文,名为“Postgres 全文搜索足够好”。真的很值得一读,我可以得到很多见解,因为我已经使用 PostgreSQL 作为我的标准数据库。

到那时,我已经习惯了使用 ElasticSearch 进行文本搜索(如果我们在此之前回到 2009 年,我就有使用 ElasticSearch 所基于的 Apache Lucene 的经验)。

但是,管理 ElasticSearch 部署并不容易。这需要很大的耐心和记忆力

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/168635
推荐阅读
相关标签