gpt4 book ai didi

postgresql - 您如何在利用全文索引的 postgres 中进行基于短语的全文搜索?

转载 作者:行者123 更新时间:2023-11-29 11:13:10 24 4
gpt4 key购买 nike

假设您有一个 postgres 8.3 表,如下所示:

CREATE TABLE t1(正文,body_vector tsvector);

我希望能够使用全文索引(在 tsvector 列上的 GiST、GiN 或两者)在其中搜索短语。我能找到的最佳解决方法是首先对两个词( bool AND)进行全文搜索,然后对短语的正文进行类似比较。当然,这无法捕获 postgres 的全文搜索为您所做的任何词干提取或拼写检查。例如,如果我要搜索短语“w1 w2”,我会使用:

SELECT * FROM t1 WHERE body_vector @@ 'w1 & w2'::tsquery AND body LIKE 'w1 w2';

有没有一种方法可以做到这一点而不必求助于在文本列上进行搜索?

最佳答案

如果你想要精确的短语匹配,那就是这样做的方式。也可以试试WHERE body_vector @@ plainto_tsquery('w1 w2'),然后按排名排序。 (关键是单词彼此相邻的命中应该最终排在最前面)

关于postgresql - 您如何在利用全文索引的 postgres 中进行基于短语的全文搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1489617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com