首页 > 解决方案 > 在发布新帖子之前为用户提供类似帖子的功能的逻辑是什么?

问题描述

我正在创建一种论坛,并希望创建一个功能,在发布新帖子之前为用户提供类似帖子的建议,就像在 SO 中一样。我不确定如何以最有效的方式创建此功能?

确定类似帖子的参数是什么?这需要仅通过帖子的标题进行搜索,但仍然不确定其背后的逻辑是什么。

此外,我正在使用云 Firestore,并且我由读取收费,因此逻辑需要高效,因为不需要读取数据库中的每个文档来显示相关帖子。应该是一些智能查询。

非常感谢您的意见和建议,谢谢!

** 多次尝试谷歌,但搜索查询带来了不相关的结果(“如何创建类似的帖子”)。因此,如果有关于我也喜欢链接的信息,我自己也找不到。

标签: javasearchkotlingoogle-cloud-firestorerecommendation-engine

解决方案


您可以通过使用定制的字符串搜索算法或Apache Commons库将每次击键时的用户输入字符串与存储在数据库或任何其他数据结构中的标题进行比较来实现此目的,该库提供了计算字符串相似度的有效算法。

Levenshtein Distance是一种流行的计算算法,使用 Levenshtein Distance,分数越低,字符串越相似:

StringUtils.getLevenshteinDistance("book", "back") == 2
StringUtils.getLevenshteinDistance("gold", "cold") == 1
StringUtils.getLevenshteinDistance("gold", "coin") == 3

推荐阅读