【问题标题】:What would be the logic of a function offering the user similar posts before posting a new post?在发布新帖子之前为用户提供类似帖子的功能的逻辑是什么?
【发布时间】:2019-06-24 04:27:00
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 您可以使用Algolia在您的标题和描述中搜索以获得类似的帖子。
  • @AlexMamo 看起来很有趣!不幸的是,他们当前的 Firebase 集成是与实时数据库,我刚刚搬到 Firestore,但也许我可以自己以某种方式使其与 Firestore 一起工作。谢谢!
  • 两者都适用;)

标签: java search kotlin google-cloud-firestore recommendation-engine


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2010-09-07
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2016-06-06
    • 1970-01-01
    相关资源
    最近更新 更多