postgresql - PostgreSQL 全文搜索调整
问题描述
考虑以下 PostgreSQL 全文 SQL 查询:
select ts_rank(to_tsvector('the best idea in the world'), to_tsquery(:query_text));
the
:query_text
是下文中用于表达问题的占位符
它需要一些调整,以便:
它考虑了查询词在搜索向量中的位置,使靠近开头的词具有更高的优先级。例如,
:query_text = 'best'
在 时具有更高的排名:query_text = 'idea'
。它应该搜索查询中的任何单词。同时,多个匹配的词具有更高的排名。例如,
:query_text = 'best idea'
当 时,排名应该更高:query_text = 'best'
。它应该进行部分匹配。所以这
:query_text = 'worl'
应该有效。
我知道phraseto_tsquery
可以使用实现 #2 来代替to_tsquery
. 但它不满足#3。此外,仅仅满足#1 是不够的。
PG的哪些功能和方法可以满足所有需求?
解决方案
推荐阅读
- python - 如何为 Google ay vision kit 编译基于 keras.applications 的模型(用于迁移学习)
- c# - LDAP 用户在下次登录时更改密码并与 Azure AD 同步
- reactjs - useEffect 导致错误信息多次弹出
- java - 将较大的数组划分为较小的数组
- c# - 调试 - > Windows - > Unity 项目的内存?
- cassandra - 尽管具有连接性和匹配模式,但 Cassandra 仍进行了分区
- java - 如何使用 JPA 保存 SQL 的日期时间以修复:“从字符串转换日期和/或时间时转换失败。”
- javascript - 如何在初始状态下添加框并保持悬停状态?
- java - 尝试使用 System.out 作为 RDD 中的任务
- javascript - 重新输入电子邮件验证器不适用于 javascript