可扩展搜索算法SQL

卡夫罗斯

所以我有一个存储在postgres数据库中的用户列表,我想在我的(Java)后端上按用户名搜索它们,并在前端向用户显示一个被截断的列表(例如facebook用户搜索)。当然可以在SQL中使用

WHERE username = 'john smith';

但是我希望搜索算法更加复杂。例如,从未命中开始

"Michael" ~ "Micheal"

并可能改善它以使用上下文,例如地理邻近性。

我已经做过很多次了,我觉得自己会重新发明轮子并且做得不好。是否有执行此操作的库?应该在后端(在Java中)还是在数据库(Postgresql)中进行处理。如何使该模型具有可扩展性(即使用易于添加复杂性的模型)?

Lexicore

复杂的算法不会神奇地出现,您必须实现它。最后一个问题是您应该使用Java还是在数据库中执行此操作。在绝大多数情况下,最好使用数据库进行查询。诸如此类的"Michael" ~ "Micheal"查询或空间查询是许多现代SQL数据库中的标准功能。您只需要实现适当的SQL查询即可。

但是,还有一点是,SQL数据库是否适合“复杂查询”。您也可以考虑使用诸如Elasticsearch之类的替代方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章