java - 在发布新帖子之前为用户提供类似帖子的功能的逻辑是什么?
问题描述
我正在创建一种论坛,并希望创建一个功能,在发布新帖子之前为用户提供类似帖子的建议,就像在 SO 中一样。我不确定如何以最有效的方式创建此功能?
确定类似帖子的参数是什么?这需要仅通过帖子的标题进行搜索,但仍然不确定其背后的逻辑是什么。
此外,我正在使用云 Firestore,并且我由读取收费,因此逻辑需要高效,因为不需要读取数据库中的每个文档来显示相关帖子。应该是一些智能查询。
非常感谢您的意见和建议,谢谢!
** 多次尝试谷歌,但搜索查询带来了不相关的结果(“如何创建类似的帖子”)。因此,如果有关于我也喜欢链接的信息,我自己也找不到。
解决方案
您可以通过使用定制的字符串搜索算法或Apache Commons库将每次击键时的用户输入字符串与存储在数据库或任何其他数据结构中的标题进行比较来实现此目的,该库提供了计算字符串相似度的有效算法。
Levenshtein Distance是一种流行的计算算法,使用 Levenshtein Distance,分数越低,字符串越相似:
StringUtils.getLevenshteinDistance("book", "back") == 2
StringUtils.getLevenshteinDistance("gold", "cold") == 1
StringUtils.getLevenshteinDistance("gold", "coin") == 3
推荐阅读
- python - 又一个“没有已知父包的尝试相对导入”
- python - 使用张量流计算雅可比和梯度
- amazon-web-services - 如何将 Terraform 状态与现有资源同步?
- python - 如何创建用于在 Python 中显示颜色的类 Canvas?
- mysql - 输入文本数据时出现 ERROR 1064 (42000) 错误
- tensorflow - 切断 TensorFlow Serving 上的输出张量
- ios - React Native 应用中的防篡改措施
- rust - Rust 结构的 JS 样式静态属性
- python-3.x - 第3行是什么意思?
- html - 对为什么 p 标签显示在 div 旁边感到困惑,如果有人愿意接受它