我正在考虑解决以下任务的方法。
我们正在开发一个有一些对象的服务(网站)。每个对象都有地理场(纬度和经度)。它可以连接大约 200-300 个城市的对象。对象的数量是数千和数万。
此外,每个对象都有创建日期。
我们需要通过距离和新鲜度函数排序来搜索对象。
例如,我们有两个靠近的城市 A 和 B。来自城市 A 的用户授权,他应该看到来自城市 A 的对象,然后在接下来的一些页面中,来自城市 B(因为来自 A 的对象更接近)。但是,如果有一个来自 A 的对象是像一年前添加的,而一个来自 B 的对象是今天添加的,那么 B 的对象应该在 A 的对象之前显示。
因此,对于来自城市 A 的人,我们可以创建具有相关索引的特殊字段,例如 = 100*distance + age_in_days 然后按此字段排序,我们将根据需要获取数据。
问题是这样的相关索引不适用于来自其他地方的所有其他人。
在我的示例中,我使用了线性函数,但这只是一个示例,我们需要拟合正确的函数。
该站点将在我们的服务器上运行,因此我们几乎可以使用任何数据库或任何其他软件(我应该使用 mongodb)