2012-09-11 27 views
0

这是一个新的领域,我不知道这是我在找什么。 我需要在查询数据库时更改约束。这是一个求职网站应用程序的例子。如果用户正在搜索具有某些特征的半径50英里的工作,我需要找到并不完美匹配但与他非常相关的工作。查询放松 - 更改约束

如果用户的工作几乎100%匹配,但距离52英里,我还需要将其提取给用户(考虑到它的相关性,因为50英里的2英里多只有4%多)。

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

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

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

+1

您应该首先给我们提供更多关于这个问题的信息:规模是什么(我们在谈论多少工作?)什么是数据结构? (还是灵活多变)?你是否从非结构化数据索引你的信息? (如文本)?或者它是否结构化? – amit

+0

请检查我的编辑,并感谢您 –

回答

1

一个一般的方法是做一个快速的第一阶段搜索,可能会通过一些垃圾,然后做更详细的检查你从中得到什么。在你的例子中,你可以简单地将查询条件单向地改变10%,所以(从薪水> 25000或者工资< 26000的工作中选择*)变成(从薪水> 22500或者工资< 23400的工作中选择*) - 顺便说一句,或者应该是和?

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

+0

我一直在寻找更多,这确实是这样做的方式,因为在这个问题上没有任何形式。这就像反复试验和常识。谢谢 –