在 PostgreSQL 中进行全文搜索时过滤不需要的词

Filter unneccessary words when doing full text search in PostgreSQL

我在 postgreSQL 中基于此 wonderfull article 创建了全文搜索。

它工作正常足够好,但问题应该得到解决。

假设我的数据库中有博客 post,其中包含文本: "All kittens go to heaven"

如果用户搜索 "All kittens go to heaven, may be..." 数据库将 return 什么都没有,因为 可能 没有找到.

我可以 post 我的 sql 查询,但它与文章中描述的几乎相同。 有没有办法显示找到的文章有 最多 个搜索词?

这是 PostgreSQL 文本搜索的一个基本问题。

您可以尝试预解析查询,并删除所有文档的 "corpus" 条款中不存在的任何条款,但这并不能真正解决您的问题。

您可以尝试将查询更改为 'or' 所有术语,但这可能会产生性能问题。

最好的办法是尝试 smlar 扩展(由文本搜索作者编写),它可以使用 cosine/tfidf 权重。这意味着查询可以包含不在文档中但仍然匹配的术语。