Mysql - “最佳匹配”搜索算法

时间:2010-10-05 02:44:35

标签: mysql algorithm search-engine estimation

我们假设我的桌子上有老师

每位教师都有参数

Experience
Hourly Cost
Distance
Last Login
Total Rating (like an eBay score given by student)

事实是,我会避免给我的用户这些下拉菜单选择排序选项,但我会建立一个足够智能的搜索引擎来计算最佳匹配

为了获得最佳匹配,我指的是每个参数的良好平衡,所以第一个结果是最近登录的教师,谁更接近你等...但不是必须具有相同的排序顺序(登录DESC,那距离ASc等...)

例如: 我设置为排序lastlogin DESC的第一个参数。 如何避免那位老师(我的得分远远超过我)每天登录将始终是我的结果中的第一位,也许是一位只有1英里的老师,但他每周只登录一次是将被处罚...

我希望我很清楚......;)

1 个答案:

答案 0 :(得分:3)

您可以构建一个估算函数来计算所有参数的相关性,并为每个参数计算特定权重。然后对结果进行排序。

Mostfavorite(teacher) = A(teacher.Experience) + B(teacher.HourlyCost) + C(teacher.Distance) + D(teacher.LastLogin) + E(teacher.TotalRating)