【发布时间】:2020-04-02 16:51:12
【问题描述】:
我有一个 PostgreSQL 数据库表,其中的行包含一些句子/文本段落。
假设有三个记录(无意义,仅举例):
1) A dancing fox ran across the road.
2) I like dancing foxtrot.
3) These animals are foxes.
我想搜索“dancing fox”,我希望它只返回“record 1”。
但是,当我使用通配符 %dancing fox% LIKE 语法时,我将检索记录 1 和 2。
我预计 ts_vector 可能是一个解决方案,但该项目使用更多语言环境(问题 1),我不希望它与第三条记录匹配 - 我不想要真正的全文(问题 2)。
请问您建议使用什么?或者您有任何经验或资源链接如何处理问题 1 和 2?
我知道我的问题很令人困惑,所以感谢您的耐心等待。也许我只需要被推向正确的方向。
【问题讨论】:
-
您能否在通配符搜索中添加前导/滞后空间?
-
“我预计 ts_vector 可能是一个解决方案,但该项目使用了更多的语言环境(问题 1)”您能否更详细地解释一下,也许可以通过示例,这会是一个问题吗?跨度>
-
@jjanes 我预计“简单”字典/搜索配置还包含特定于区域设置的停用词等,但它似乎不是真的。
标签: sql regex postgresql full-text-search where-clause