【发布时间】:2009-07-31 23:21:23
【问题描述】:
我正在用 PHP/MySQL 编写一个网站,该网站通过 API 从外部网站获取产品搜索结果。该站点也将拥有自己的产品,并且该站点的所有者希望搜索结果能够相互连接。
如果有人搜索 VIDEO,按日期排序,那么无论其来源如何,结果都应该是有序的。
例如。
7 月 31 日 - 视频 A - 我们的数据库 7 月 30 日 - 视频 B - 通过 API 7 月 29 日 - 视频 C - 通过 API 7 月 28 日 - 视频 D - 我们的数据库 ...
我遇到的问题是想办法有效地做到这一点,尤其是在查看多页结果时。如果有人点击结果的第二页,那么我需要找出结果第一页上的最后一项(以及 API 中的最后一项),然后仅在查看最后一个 API 项之后从 API 获取项上一页,然后对我们的数据库结果执行相同的操作并再次重新组合它们。
为了避免这种复杂的算法,我的另一个想法是将结果限制为大量 - 例如 500 个结果,并一次获取所有结果并排序。那么如果用户前进几页,我就不用重新抓取所有数据了。
有没有人对用于合并两个搜索结果的好算法提出建议?
【问题讨论】: