我有一个包含四个语言翻译列的表。例如,如果有描述数据,那么数据库中有四列:description_en、description_de、description_it和description_fr。
我建立了一个索引和tsv::tsvector
列,将所有这些列的数据收集到一个tsvector
列中。
查询该表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)...
对我来说很痛苦......