【发布时间】:2013-11-19 14:59:49
【问题描述】:
我有一个包含四个语言翻译列的表格。例如,如果有 description 数据,则数据库中有四列:description_en、description_de、 description_it 和 description_fr。
我建立了一个索引和tsv::tsvector 列,将所有这些列的数据收集到一个tsvector-column 中。
用tsv @@ to_tsquery(#{ search_query }) 查询该表很好,但我想匹配search_query 拼写错误的行。换句话说,进行模糊搜索。然而,我希望它尽可能快,因为我的桌子真的很大......
所以我想知道,在 Postgres 中是否有可能以某种方式匹配我的 tsv 列而不是 metaphone(#{ search_query }, 2)?
因此,例如,字符串 Herrenarmbanduhr 和 heren 匹配。
UPD:我有一些...中等数量的已翻译列,因此将这些与metaphone(column_a, 2) = metaphone(query, 2) OR metaphone(column_b, 2) = metaphone(query, 2)... 匹配对我来说很痛苦...
【问题讨论】:
标签: sql postgresql full-text-search fuzzy-search