【发布时间】:2020-03-02 14:01:59
【问题描述】:
我有一个由酒店组成的表。其中一个酒店名称是 d'spa。我已经实现了名称搜索。所以如果用户搜索 d'spa,他会得到正确的酒店。
现在如果用户搜索 d.spa,d-spa 或 dspa ,用户应该会得到正确的酒店,即 d'spa
我的 knexjs 查询(不涉及特殊字符问题):
hotel = "d'spa"
knex.select('*').from('hotels').where({name:hotel})
我想要与
相同的结果hotel = "d-spa"
//or hotel = "d.spa"
//or hotel = "dspa"
【问题讨论】:
-
如果你想在可能出现其他拼写错误的地方进行快速模糊搜索,你应该查看 postgresql 的 trigram 扩展。然后您可以按搜索字符串的相似性对结果进行排序。
标签: sql node.js postgresql full-text-search knex.js