所以,我有一个带有搜索栏的网站。
我只知道如何在匹配时获得结果(至少部分使用 Like %searchterm%)并且它有效。
显然,如果用户拼写错误,这对我没有帮助。
我们通过 HeatMapping 发现我们正在失去人们。
如何实现“更智能”的搜索功能?
谢谢,约尼
您正在寻找的“真正”解决方案可能比您想象的要复杂。您可以使用更简单的解决方案,就像使用DIFFERENCE函数一样。
我正在尝试发表评论,但无法发表评论。所以我不得不把它留在这里,这可能不是 Yoni 所期望的理想答案。我可以想到两种方法。
希望能帮助到你。:)
这是一个相当复杂的问题,会影响编码复杂性和查询性能。当然,可能有很多方法可以达到您要求的结果。
就个人而言,我会从使用别名开始:对于用户可能搜索的每个单词,我会创建一组别名,这些别名可能与单词语义值或单词本身的错误输入有关,例如:
词语: 表
别名:paper、shet、shee ...
因此,每个单词都必须被索引(这可能是一个繁琐的方面,取决于您的内容),并且对于每个 woed 可能有许多别名。
然后应用如下顺序逻辑:
1 - 标准搜索,就像你已经做过的那样
-> 如果没有匹配
2 - 别名搜索
-> 如果没有匹配
3 - 开始“玩”通配符(但这肯定会杀死你的数据库)
我知道这是一个非常通用的答案,但我认为您的问题可能没有绝对好的方法 - 性能方面。