Postgres 三元组搜索中 AND OR NOT 的语法是什么?

问题描述 投票:0回答:1

我已经在我的应用程序中实现了 Postgres 9.6 trigram 搜索 https://www.postgresql.org/docs/9.6/static/pgtrgm.html,它对于单个搜索词效果很好。

我不知道如何允许我的用户进行 AND OR NOT 搜索。

目前,如果我将“perl”输入搜索字段,它将返回数百个结果。这太棒了,而且效果很好。

现在如果我想搜索包含“perl”并且还包含“javascript”的文档,无论我输入什么搜索词,都不会返回结果。

我尝试过例如:

"perl javascript"
"perl AND javascript"
"perl && javascript"

因此,我正在尝试研究如何为最终用户提供比仅单个术语更复杂的搜索。我希望我的应用程序用户能够使用和/或/不进行全文搜索。

可能吗?如果是,语法是什么?

postgresql pattern-matching full-text-search trigram pg-trgm
1个回答
2
投票
SELECT *
FROM   tbl
WHERE  document ~ 'perl'
AND    document ~ 'javascript';

此查询找到...

包含“perl”并且还包含“javascript”的文档

请注意,“perlane”或“javascripting”或“Kaperl”也符合条件。要搜索整个单词,您可能会对文本搜索感兴趣。概述:

© www.soinside.com 2019 - 2024. All rights reserved.