0

我正在尝试构建一个具有智能自适应搜索引擎的应用程序(比如说汽车)。如果我搜索 4x4,那么数据库将返回我拥有的所有 4x4 汽车(100 辆汽车) - 但随着时间的推移,我开始查看汽车、喜欢它们、评论它们等,搜索结果的顺序应该是不同的。这意味着 1 个月后,在搜索 4x4 时,我应该得到相同的结果集,其排序方式与我之前与网站的交互不同。如果我主要是喜欢和评论德系车,那么宝马应该排在首位,而陆地巡洋舰应该排在后面。

这个排名应该基于我在用户交互中捕获的属性(例如:汽车来源、用户年龄、用户位置、汽车类型[4x4、双门轿车、掀背车]、价格范围)。所以对于我得到的每辆车的结果,我将根据它在上述 5 个属性上的表现来衡量它。

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

谢谢。

4

1 回答 1

0

你基本上是说你已经有几个订购方案:

  • 关键字搜索结果
  • 汽车类别的点赞数
  • 可能还有其他,例如受欢迎程度、某种形式的日期等。

然后你要做的是制定一个新方案,称之为相关性

  • 相关性 = W 1 * keyword_score + W 2 *likes_score + ...

并按相关性排序。尝试权重 W 1, W 2,...,直到你得到一些你觉得有用的东西。

据我了解,搜索引擎就是按照这个原则工作的。长期以来,Google 在相关性得分中拥有大约 200 种不同的输入,PageRank 只是其中之一。这种方法的美妙之处在于它可以让您微调所有内容的重要性(甚至针对每个查询单独进行),并且它可以让您添加额外的输入而不会搞砸一切。

于 2013-10-29T21:58:06.770 回答