问题标签 [tsvector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
30 浏览

sql - 我可以指定仅使用 tsvectors 匹配只有一个单词的向量吗?

我只想在 tsvector 中搜索单词,前提是它们是文本中唯一的单词。有没有办法做到这一点?如何指定一个词必须是最后一个词或第一个词?我使用 tsvector 的原因是我需要匹配词干词。

更新:示例数据将是一个包含三行的表,例如:

我希望能够搜索单词eat并只返回 id = 1 和 id = 3 但应忽略 id 2 的单词。查询看起来像这样:

to_tsquery('english', 'eat') @@ tablename.ts_vector

如您所知,除了返回此示例中的所有三行

谢谢!

0 投票
1 回答
176 浏览

postgresql - tsvector 中的词素位置

我有以下几行文字:

"Blue pill"; "Red pill"; "Blue shift"; "Red eye".

我想选择行,Red第一个单词在哪里或Pill第二个单词在哪里。假设,可以使用tsqueryand来完成tsvector,因为 的输出tsvector还包含每个词位的位置。但是我没有找到任何允许通过它们的数字访问向量词素的函数。有没有选择行的正确方法,ts_query在定义的位置匹配?

0 投票
1 回答
299 浏览

postgresql - Postgresql tsvector不搜索几个字符串

我正在使用 PostgreSQL 11,在 search_fields 列上创建了带有 gin 索引的 tsvector。

表格测试中的数据

默认文本搜索配置设置为“pg_catalog.english”。

在两个查询下方输出 0 行。

但是当我将字符串作为“10x”或“咨询”传递时,它会返回正确的输出。

任何想法,为什么它不搜索“正在进行的”单词?

之后,我使用函数 tsvector_update_trigger() 创建了触发器并更新了 search_fields 并在 postgresql.conf 文件中将 default_text_search_config 设置为 'pg_catalog.simple',然后我用 search_fields 更新了 search_fields 并输出为

这一次,当我运行传递“正在进行的”字符串的查询时,它会按照预期的结果输出。

根据上述实验,将 trigger 和 default_text_search_config 设置为 'pg_catalog.simple' 有助于实现结果。

现在,我不知道它不能使用 default_text_search_config 到 'pg_catalog.english' 的原因是什么。

使用tsvector时是否总是需要触发?

任何有助于理解两者之间差异的帮助将不胜感激。

谢谢,尼西特

0 投票
0 回答
202 浏览

postgresql - 使用 sqlalchemy、postgres 和烧瓶进行全文搜索后无法访问数据

我想使用 postgres 内置的全文搜索功能来搜索我的 postgres 数据库。在我的应用程序中,我有一组根据标题、内容和日期存储的帖子。我想我可以使用 tsvector 搜索数据库,但无法从结果中检索数据;即标题、内容和日期。有人可以帮我吗?

0 投票
1 回答
274 浏览

postgresql - Rails activeRecord version for to_tsvector() function of Postgresql

I have a TSVECTOR column in my database and I want to update this column via Rails callback rather than a trigger. I want to know if there's an ActiveRecord code to achieve this. So far I'm doing this by manually executing a raw SQL and it doesn't look nice.

I'm wondering if there's a better approach to do this without using a raw SQL.

Thanks in advance.

0 投票
1 回答
825 浏览

postgresql - 包含 tsvector 字段的可能原因?

我(重新)对tsvector字段感到困惑。经常看到文本示例被连接到 tsvector 字段中,然后被索引。如果您查找 PG 12 生成的列,您会发现快速tsvector显示字段填充的示例。

既然这个字段的唯一目的是支持索引,那为什么不用表达式建立索引,跳过向量列呢?我之前顺便问过这个问题(找不到),记得听到“这个专栏毫无意义”。这对我来说很有意义。最近,我一直在关注这篇文章的一些评论:

使用 PostgreSQL 12 微调全文搜索

这部作品相当不错,顺便说一句。有这样的评论:

实现 tsvector 的一个原因是不在重新检查时评估表达式,这本身可能非常昂贵。

在解释分析中勾选“Recheck Cond”,条件可以被真正检查,因此条件(to_tsvector)将被计算。

我很困惑。将向量存储在行中是否有很好的案例?我对 Postgres 的这一部分不够流利,无法构建令人满意的测试。我仍在 Postgres 中研究 FTS 和模糊比较选项,但需要在下个季度构建一些实质性的东西,这就是为什么我渴望提前获得详细信息。现在3500万行,快速增长。

0 投票
1 回答
95 浏览

postgresql - 是否有一个 ts(文本搜索)函数会返回找到的字符串而不是布尔值?

我正在使用 PostgreSQL 通过使用tsvectorand来查找文章中匹配的字符串tsquery

我阅读了 PostgreSQL 手册 12.3 Controlling Text Search,但没有什么能帮助我获得我想要的确切输出。

询问:

ts_headline 输出

我正在寻找下面提到的唯一字符串:

查询,相似度

0 投票
1 回答
88 浏览

postgresql - ts_vector 之间的交集

我只想选择两个 ts_vector 的交集为零元素的记录

--伪代码

0 投票
1 回答
441 浏览

postgresql - Postgres 全文搜索:短语运算符 () distance 正在寻找精确的距离匹配

当使用短语运算符 ( ) 语法进行全文搜索时<X>,它不会像我预期的那样“小于或等于”数字。搜索值必须恰好在那么多位置之外。

给定这个例子:

使用<3>返回匹配项。但是,任何其他更大的值(即<4><5>)都不匹配。

Postgres 中是否有一些配置设置可以使用 tie-fighter?

我在 AWS 上使用 RDS Postgres 实例:PostgreSQL 9.6.11 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9), 64-bit

0 投票
2 回答
220 浏览

postgresql - PostgreSQL:是否可以手动构建 tsvector 值?

我想实现一个使用向量空间模型的信息检索系统,但具有多术语标记和自定义术语权重函数。

我正在考虑在 PostgreSQL 而不是文件系统中构建我的倒排索引。我读到了 GIN 索引,它在 tsvector 列上建立了这样的索引。

我可以在不调用 to_tsvector 函数的情况下手动构建 tsvector 值,以便可以使用自定义标记和自定义权重构建“自定义”向量吗?