查询放宽 - 更改约束

时间:2012-09-11 21:58:55

标签: java database algorithm networking bayesian

这对我来说是一个新领域,我不确定这是否是我正在寻找的。 我需要在查询数据库时更改约束。一个例子是求职网络应用程序。如果用户正在寻找具有某些特征的50英里范围内的工作,我需要获得不完美匹配但与他非常相关的工作。

如果用户的工作几乎100%匹配但距离52英里,我还需要将其检索以呈现给用户(考虑到它)自50英里2英里以来的相关性仅增加4%)。

我们的想法是开发一个新的求职网络应用程序,并希望它会增长。这些公司在网站上创建他们的工作机会,并由用户搜索。这通常很常见。不同之处在于搜索机制。它比简单的数据库查询更聪明一点,这就是为什么我需要知道如何获得更多结果来过滤它们之后。 如果存在一个限制(从工资> 25000或工资<26000的工作中选择*),那么100%匹配但工资为24999的工作将不会显示在结果中,尽管它应该因为它&#39很接近 我们的想法是让数据库中的所有作业都接近(因此我必须放宽对较大值的约束),通过贝叶斯网络或其他东西,确定它与用户的相关性。当然,这些条件也适用于其他工作属性,如位置,经验,工作区域(comp sci,mechanics等)。

所以我需要一些指针来寻找有关此主题的更多信息,如何放宽这些约束以进行更广泛的搜索,然后通过贝叶斯网络计算与用户的相关性并显示它。

任何人都可以帮助我吗? 谢谢

1 个答案:

答案 0 :(得分:1)

一种通用的方法是进行快速的第一阶段搜索,可以通过一些垃圾,然后对你从中得到的东西进行更详细的检查。在您的示例中,您可以简单地将查询项更改为单向10%,因此(从工资> 25000或工资<26000的工作中选择*)成为(从工资> 22500或工资<23400的工作中选择* ) - 顺便说一句,或者你应该在这里做什么?

然后获取通过第一阶段的答案,并按照与理想值的百分比差异的平方和之类的方式对它们进行排序,并向用户显示前N个答案。这很简单,你可以找到一个涉及正态分布的论证,证明它是贝叶斯计算某种东西或其他东西。