c# - 查找相关提交的高效算法

标签 c# database performance algorithm memory

我最近推出了我的 humble side project并希望在查看提交时添加“相关提交”部分。与 SO 在这里所做的完全一样 - 请参阅右栏,标题为“相关”

考虑到每个提交都有一个标题和一组标签,什么是最有效(最佳结果)、最有效(快速、内存友好)的方式来查询相关提交的数据库?

我可以想出一种方法来做到这一点(我会将其作为答案发布),但我很想知道其他人怎么说。或者也许已经有实现此目标的标准方法?

最佳答案

这是我的两分钱解决方案:
为了获得最佳输出,我们需要对查询结果进行“加权”。

首先,假定数据库中的每个提交的权重为零。 然后,如果“池”中的提交与当前提交共享一个标签,我们将向找到的提交添加 +3。因此,如果发现另一个提交与当前提交共享两个标签,我们将权重增加 +6。

接下来,我们拆分/标记当前提交的标题并删除“停用词”。
我在 google 上看到了一个停用词列表,但现在我将停用词定义为:[“of”、“a”、“the”、“in”]

例子:
标题“有史以来最好的作品”
结果数组:[“The”、“Best”、“Submission”、“of”、“All”、“Times”]
删除停用词:[“Best”、“Submission”、“All”、“Times”]

然后我们在数据库中查询包含任何提到的标题的提交,并为每个结果添加权重:+2
最后将列表按权重降序排序,取前N个结果。

你怎么看? (要温柔!)

关于c# - 查找相关提交的高效算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1559545/

相关文章:

mysql - 最大记录表可以处理在 0 秒内获得结果,同时通过主键搜索

mysql - 我应该将我的数据库字段大小四舍五入到最接近的以 2 为基数的倍数吗?

c# - 在 asp.net 应用程序中创建管理页面

c# - 在 Microsoft Visual Studio Community 2015 中使用 Cocos2d-x

c# - 文本框对象的文本更改事件 : how to perform text change + another action

database - SQL Server 2005 - 多个数据库

php - 在 php 中获取时,CSS 样式不起作用

c# - 堆栈跟踪优化

database - 分布式事务的惯用语或算法?

performance - 分支预测变量与此同时起作用吗?