我已经在我的应用程序中实现了 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"
因此,我正在尝试研究如何为最终用户提供比仅单个术语更复杂的搜索。我希望我的应用程序用户能够使用和/或/不进行全文搜索。
可能吗?如果是,语法是什么?
SELECT *
FROM tbl
WHERE document ~ 'perl'
AND document ~ 'javascript';
此查询找到...
包含“perl”并且还包含“javascript”的文档
请注意,“perlane”或“javascripting”或“Kaperl”也符合条件。要搜索整个单词,您可能会对文本搜索感兴趣。概述: