2013-10-29 74 views
0

我想建立一个具有智能自适应搜索引擎(可以说汽车)的应用程序。如果我搜索4x4,那么数据库将返回我拥有的所有4x4汽车(100辆汽车) - 但随着时间的推移,我开始检查汽车,喜欢它们,评论它们等,搜索结果的顺序应该是不同的。这意味着1个月后,当搜索4x4时,我应该得到相同的结果集,按照我之前与该网站的交互进行排序。如果我主要喜欢和评论德国汽车,宝马应该位居前列,陆地巡洋舰应该会进一步下滑。 (例如:汽车起源,用户年龄,用户位置,汽车类型[4x4,轿跑车,掀背车],价格范围)。这个排名应该基于我捕捉用户交互的属性。因此,对于我得到的每一辆车的结果,我将根据它在上述5个属性上的表现有多好来衡量它。排名/称重搜索结果

我打算使用数据库作为存储库,并在服务器上进行排名和思考。我的问题是,我应该使用什么样的算法来衡量/排列我的搜索结果?

谢谢。

回答

0

你基本上说,你已经有了几个排序方案:喜欢的汽车的类别

  • 关键字搜索结果
  • 可能其他人,如普及,某种形式的日期,等

你做的就是做了一个新的方案是什么,把它相关

  • 相关= W * keyword_score + W * likes_score + ...

和排序的相关性。试验重量W ,W ,...,直到你找到有用的东西。

从我的理解搜索引擎工作在这个原则。谷歌已经投入了200多种不同的投入进入相关性分数,而PageRank只是其中之一。这种方法的优点在于,它可以让你调整每件事的重要性(甚至是针对每个查询),并且可以让你添加额外的输入,而不用把所有东西搞砸。

+0

谢谢...我同意,唯一的事情是我想我可能需要更复杂的称重公式......例如,如果一个用户搜索了30辆4x4汽车和20辆德国汽车,那将会有点困难在您的公式中替换这些值... – biso

+0

@biso好吧,您有两套类别:汽车类型(4x4,轿车等)和国籍(德语,美国等)。据推测,汽车的类型会更高。 – Adam