首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加权use向量PostgreSQL全文检索的最佳索引

加权use向量PostgreSQL全文检索的最佳索引
EN

Stack Overflow用户
提问于 2020-02-13 00:05:07
回答 2查看 1.3K关注 0票数 3

我对数据库并不熟悉,也不太了解索引是如何工作的。

我正在研究索引我的列中包含加权的the向量的列(标题的权重最大,其次是子标题,然后是段落内容)。根据Postgres文档,GIN是全文搜索的最佳选择,其次是GiST。然而,第12.9章有一个说明:

GIN索引是首选的文本搜索索引类型。作为倒排索引,它们包含每个单词的索引条目(lexeme),其中包含匹配位置的压缩列表。多词搜索可以找到第一个匹配项,然后使用索引删除缺少其他单词的行。GIN索引只存储the向量值的单词(词),而不存储它们的权重标签。因此,当使用涉及权重的查询时,需要重新检查表行。

这是否意味着杜松子酒在我的用例中效率低下,我应该使用GiST,还是它仍然是最好的?我正在使用最新的Postgres版本(12)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-13 06:59:51

不,你应该坚持使用杜松子酒索引。

索引扫描起到过滤器的作用,希望消除大部分行,因此只需要重新检查很少行。

无论如何,您可能必须获取表行,所以除非在索引扫描过程中发现许多假阳性,否则不会有太多额外的工作。

最好是在数据集上运行一些基准,这将为您提供一个权威的答案,在您的情况下哪个索引更好。

为了找出在位图堆扫描过程中排除了多少假阳性,您可以检查查询的EXPLAIN (ANALYZE, BUFFERS)输出。

票数 2
EN

Stack Overflow用户

发布于 2020-02-13 18:34:05

对于to向量,GiST索引的实现是有损的,因此它们也需要查询表。文档的这一部分很奇怪,因为它似乎将GIN与GiST进行了对比,但GIN和GiST都没有存储权重,因此没有什么可对比的。(GiST甚至不存储这些值,更不用说权值,只是值的一部分)。

此外,权重只在排名时使用,而不是在搜索时使用。

对于the向量,只有当您想要一个多色索引时,GiST才会被优先考虑,在这个索引中,您将对不同的列一起选择ANDing标准。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60198680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档