问题标签 [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.
postgresql - PostgreSQL - 通过 ts_stat 将词位转换为完整的单词
我试图从我的 PostgreSQL 数据库中获取字数以生成词云类型视图。我希望利用 ts_vectors 的内置效率。我看到有一个 ts_stats 函数,它返回一个词位列表及其频率,给定一个 ts_vector 列。
返回的行如下所示:
查询如下所示:
但是,我需要完整的单词,而不仅仅是词位。有没有办法使用 PostgreSQL 将词位转换为其全字表示之一?您可以轻松地将单词转换为其词位,但我不知道如何进行相反的操作。
谢谢。
json - PostgreSQL 9.4 - jsonb 数组的元素到 ts_vector 中
我目前正在使用 PostgreSQL 中的 NOSQL 数据库。它包含 3 个具有 id、data (jsonb) 和 tsv (tsvector) 字段的表。
我在从数据字段创建 tsvector 时遇到了一些困难。使用 jsonb 对象我没有任何问题:
对于这样的事情:
我用了:
但现在我也有像这样的嵌套结构:
我正在尝试将“track”-array 中所有曲目的每个标题放入我的 tsvector 中。整个表格中的曲目数量可能不同。
我试过使用
这给了我每行一个标题。
任何人都可以帮助将这些行作为 to_tsvector() 函数的输入吗?或者对此有不同的解决方案?
postgresql - 将 `jsonb_array_elements` 的多行结果扩展到 PL/pgSQL 过程中的 tsvector
溢出物,
我有一个这样的 JSON 数组项(PostgreSQL 9.4):
我想要的是将所有项目的名称连接到一个tsvector类型的列中,以便我可以在该列上创建索引。
如果我运行:
我可以得到预期的结果:'foo': 1 'bar': 2 'baz': 3
但我陷入了这样的困境:
to_tsvector
抱怨多行。
附上一个sqlfiddle。
任何帮助将不胜感激!
postgresql - 围绕电子邮件的 postgresql tsvector 和 tsquery 的奇怪行为
我一直在使用 postgresqls 文本搜索功能,并且遇到了我认为奇怪的行为。这是在 postgresql 8.3 上,所以它可能不是当前的行为:
第一个查询匹配,但第二个失败......
有谁知道这里发生了什么?
我试过转义 @ 和 . 字符,但没有运气
postgresql - tsvector 是否适用于 citext
我有一个citext
名为的列email
,还有一个tsvector
名为search
进行全文搜索的列。我的触发器是这样的:
tsvector_update_trigger(search_vector, 'pg_catalog.english', name, email)
name
只是一个普通的text
列。但是,因为email
is citext
which 是文本,但不区分大小写,所以触发器似乎不起作用。我有错误提到email
不是“字符类型”。我想知道为什么 Postgres 难以将 citext 视为文本或转换为文本并进行其标记化业务?
如何email
保持citext
全文搜索?
postgresql - 在 PostgreSQL 9.4 中按 ts_vector 中出现的次数查询词位
是否可以使用 WHERE 语句根据词位在 ts_vector 中出现的次数来查询 PostgreSQL?
例如,如果您创建一个带有短语“top hat on the cat”的 ts_vector,您可以SELECT * FROM table WHERE ts_vector @@ {the lexeme 'top' appears twice}
吗?
postgresql - Postgres:to_tsvector 重复词位
我的声明:
我的结果:
我的问题:
为什么“我的结果”重复词位first
和string
?
我的预期结果:
我的 Postgres 版本:
PostgreSQL 9.2.2,由 Visual C++ build 1600 编译,64 位
我非常感谢您提供的任何帮助。
postgresql - 为什么这个 postgresql 全文搜索查询返回 ts_rank 为 0?
在我投资使用 solr 或 lucene 或 sphinx 之前,我想尝试使用 postgresql 全文搜索在我的系统上实现搜索功能。
我的表格中有一个全国性的企业列表,我想搜索。我创建了一个结合了企业名称和城市的 ts 向量,这样我就可以进行像“outback atlanta”这样的搜索。
我还通过使用搜索的通配符功能来实现自动完成功能,方法是将“:”附加到搜索模式并在关键字之间插入“&”,因此搜索模式“outback atl”变成了“outback & atl: " 在使用 to_tsquery() 转换为查询之前。
这是我目前遇到的问题。如果搜索模式输入为“ou”,则返回许多“Outback Steakhouse”记录。如果搜索模式输入为“out”,则不返回任何结果。如果搜索模式输入为“outb”,则返回许多“Outback Steakhouse”记录。
做了一点调试,我想出了这个:
结果是:
我究竟做错了什么?
这是 pg 全文搜索的限制吗?
我可以用我的字典或配置做些什么来解决这个异常吗?
更新:我认为“out”可能是一个停用词。
当我运行这个调试查询时,我没有得到任何“out”的词位
所以现在我问我如何修改停用词列表来删除一个词?
更新:这是我目前使用的查询:
当我执行查询时(我使用的是 Strongloop Loopback + Express + Node),我将模式传入以替换 $1 参数。模式(如上所述)看起来像“keyword:”或“keyword1 & keyword2 & ... & keywordN: ”
谢谢
postgresql - 如何转换tsvector?
tsvectot的一个典型且相关的应用是查询和汇总有关出现的单词集及其频率的信息......而 JSONB 是代表tsvectot
这些“查询应用程序”的数据类型的自然选择(!)......所以,
有一个简单的解决方法可以将tsvector转换为JSONB吗?
示例:计算缓存的 tsvectot 单词的全局频率,将类似于此查询
postgresql - 如何在搜索查询中提高排序?PostgreSQL
我需要一些帮助。网站有 2 种排序类型:按相关性和日期。有时会出现分数最高的问题太旧,而最新的分数很小。所以需要一些基于 2 标记的常见查询。
相关性查询看起来像'ORDER BY' ts_rank(EXTENDED_INDEX, custom_tsquery('english', 'test', 0))'
第二个只是'ORDER BY table.date'
有什么想法可以改善搜索吗?也许是第二个 ts_rank 按日期?