我正在为我的应用程序创建一个新的搜索系统。现在的想法是使用查询松弛来从数据库中获得更广泛的结果,然后计算它与用户的相关性。问题出在算法上。我正在考虑使用最近邻算法,但我对如何使用它有点不确定。
如何获取数据库中记录与用户搜索的相关性(以 % 为单位)?
我需要在属性distance和category中执行此操作。换句话说,当我查询数据库时,距离乘以 2 并且通过选择它的父类别来放宽类别。
一个例子:如果用户搜索最远 30 公里外的东西并且类别是“足球”,我将从数据库中获取直到 60 公里的所有记录和“ballSports”(在树中,如:sports->fullContact ->ballSports->soccer,所以我会参加足球、橄榄球、橄榄球等运动)。
还需要考虑用户属性的权重来计算此百分比。如果用户认为类别比距离更重要,则在计算相关性时必须考虑到这一点。
类别树的一个很好的例子和计算距离的公式可以在第 3 页找到:http ://reference.kfupm.edu.sa/content/d/i/a_distributed_case_based_reasoning_appli_58512.pdf
如何将该公式应用于属性?顺便说一句,我使用的是 MongoDB,所以所有数据都在文档中,与其他表没有关系。
谢谢