问题标签 [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.
sql - 将源自不同表的两个 postgresql tsvector 字段连接到单个 postgresql 视图中,以启用联合全文搜索
我有一个由 3 个表组合而成的 postgresql 视图:
但是,我需要将 3 个表中的 2 个表中的 tsvector 字段连接到视图中的单个 tsvector 字段中,该字段提供跨 4 个字段的全文搜索:2 个来自一个表,2 个来自另一个表。
我已经阅读了说明我可以使用 concat 运算符来组合两个 tsvector 字段的文档,但我不确定这在语法上是什么样的,以及此实现是否存在潜在的陷阱。
我正在寻找将单独表中的两个 tsvector 字段连接到视图中的示例代码,以及关于这在 postgresql 领域中是好还是坏的做法的评论。
postgresql - 使用其他数据类型然后 char 在 postgresql 中创建一个 TSVECTOR
我已经设置了一个触发器,例如:
但是当我现在尝试输入 ID 时出现错误:
那么我如何将这些 int 数据类型或一般其他数据类型转换为 char / string。
postgresql - 如何在 postgres 中检索两个 tsvector 的差异?
我有两个 varchars 字段,我想获得一个单词数组,它们存在于其中一个中,而不存在于另一个中,即:
我试着摆弄 ts_vectors,但没有运气.. postgres 中的任何其他功能支持这样的东西吗?
sql - 在 tsvector 触发器中使用 unaccent
我想在我的 tsvector 列中使用 postgresql 的 unaccent contrib 包。我已经使用 create extension unaccent 成功安装了该软件包,并检查了它是否有效。我设置了一个触发器来自动更新 tsvector 列,
然后使用以下命令在所有现有行上设置 tsv_name 列
我认为我可以通过在上面的代码中简单地将 name 替换为 unaccent(name) 来合并 unaccent 包,但这会在创建触发器代码中引发语法错误。如何解决此问题以确保 tsvector 列使用非重音字符?
sql - 从 tsvector 检索词法出现的位置和数量
有什么方法可以从 tsvector 中获取有关句子中词位位置和出现次数的信息?
像这样的东西
将返回 3
和
将返回 1。
postgresql - Postgresql 根据词的外观进行向量搜索
让我们先设置上下文:
- 我们的数据库是 postgres 8.4.20
- 我的表包含一个非常大的全名列表。
- 这些名称只能在一列中。
- 我们正在使用向量来搜索此表。
- 我们需要快速搜索。
现在的问题是:我可以非常快速地搜索整个表格,而且它似乎按预期工作。当您要搜索的主题有 2 个姓氏时,就会出现问题,例如:
拉蒙弗洛雷斯弗洛雷斯
埃内斯托·莫拉莱斯
在这种特殊情况下,它将带入数据库中包含“Ramón Flores”或“Ernesto Morales”的每条记录。
我正在寻找的是能够只带来包含“Ramón Flores Flores”或“Ernesto Morales Morales”的记录。我在想的是创建另一个包含每条记录的统计信息的列,并添加一些 WHERE 子句以仅在每个单词仅出现一次时选择。
提前致谢 :)
[编辑] 进度说明 #1: 嗯,我尝试使用 ts_rank来赋予这些结果一些意义,然后我使用 WHERE 子句 > 0.1。虽然正在帮助我缩小这些结果的范围,但这还不是一个完整的解决方案。我会继续研究:)
ruby-on-rails - 让 postgres 全文搜索(tsvector)像 ILIKE 一样搜索单词?
因此,假设我搜索“Blerg”。我有一个名为SomethingblergSomething 的项目。
如果我像这样在 postgres(和 rails)中进行 ILIKE 搜索:
它将返回结果“SomethingBlergSomething”,因为它包含 Blerg。
有没有办法让更快的 tsvector 在一个单词中进行类似的搜索:
上面的查询不会返回“SomethingBlergSomething”。
那么如何让 tsvector 在搜索单词时表现得像 ILIKE 一样。
postgresql - 设置 postgres ts_vector 列
我在 postgres 中有一个带有 ts_vector 列的搜索表。当我将 dstring 插入此列时,它看起来像是对其进行了矢量化处理,但它不会执行任何词干或删除停用词:
您会注意到,在第二个插入中,删除了 3 个停用词,并且词干了(在这种情况下,不需要词干),而在第一个示例中,每个词都被添加。如何在插入之前将 to_tsvector 函数自动应用于字符串值?
postgresql - 使用包含 XML 标记的列的表上的 gin 索引进行快速查询
我有一个非常大的知识库(Yago2),其中包含 XMl 标签形式的列,例如'<Albert_Einstein>'
。性能在我的用例中非常重要,所以我创建了一个这样的 gin 索引:
现在我试图用
但是,它不会返回任何结果,因为它无法在 XML 标记中进行搜索。我看到了一个可以解决上一个问题的方法:
问题是它没有很好的性能,因为它没有使用我创建的 gin 索引。如何快速查询?
ruby-on-rails - PostgreSQL:如何绕过 ts_vector 大小限制?
我正在使用pg_search gem
. 但是,其中一个表有一个Text
数据类型字段,它的内容恰好比平时大一点。
现在,当我需要tsvector column
为text
列设置 a 时,由于文本字段大小与 tsvector 大小的关系,我面临一些限制。
ERROR: string is too long for tsvector (5068741 bytes, max 1048575 bytes)
在触发器中Text
创建 tsvector 列以执行以下操作时,有什么方法可以确定跳过更大字段的条件:SQL
伪代码:
我发现没有答案的相关问题: