【问题标题】:Could PostgreSQL perform phonetic search over tsvector?PostgreSQL 可以通过 tsvector 执行语音搜索吗?
【发布时间】:2013-11-19 14:59:49
【问题描述】:

我有一个包含四个语言翻译列的表格。例如,如果有 description 数据,则数据库中有四列:description_endescription_de description_itdescription_fr

我建立了一个索引和tsv::tsvector 列,将所有这些列的数据收集到一个tsvector-column 中。

tsv @@ to_tsquery(#{ search_query }) 查询该表很好,但我想匹配search_query 拼写错误的行。换句话说,进行模糊搜索。然而,我希望它尽可能快,因为我的桌子真的很大......

所以我想知道,在 Postgres 中是否有可能以某种方式匹配我的 tsv 列而不是 metaphone(#{ search_query }, 2)

因此,例如,字符串 Herrenarmbanduhrheren 匹配。

UPD:我有一些...中等数量的已翻译列,因此将这些与metaphone(column_a, 2) = metaphone(query, 2) OR metaphone(column_b, 2) = metaphone(query, 2)... 匹配对我来说很痛苦...

【问题讨论】:

    标签: sql postgresql full-text-search fuzzy-search


    【解决方案1】:

    据我所知,这不是开箱即用的支持。

    应该可以编写一个例程(可能是 C 语言函数?)将 tsvector 转换为类似于文本值数组的东西,然后使用其他搜索功能对它们进行语音搜索。由于初始转换和语音转换是不可变的,因此您可以索引输出。

    但这不支持开箱即用,至少需要一些工作。

    【讨论】:

      猜你喜欢
      • 2017-05-21
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 2020-12-20
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      相关资源
      最近更新 更多