Tôi cho rằng cuối cùng bạn sẽ nhận được một danh sách các bài đăng có hai thứ nguyên xếp hạng rời rạc, tức là:
{ age: 86400, distance: 1000 }
{ age: 172800, distance: 5000 }
{ age: 57600, distance: 20000 }
{ age: 288000, distance: 8000 }
Không thực sự quan trọng các đơn vị là gì, hãy nói giây và mét. Nếu bạn muốn cả hai đều ảnh hưởng đến thứ hạng sắp xếp thì bạn kết thúc với một thuật toán xếp hạng, đơn giản nhất là như sau:
rank = (C1 * age) + (C2 * distance)
Trong đó C 1 và C 2 là các hằng số bạn có thể tinh chỉnh để điều chỉnh trọng số. Các giá trị sẽ phụ thuộc vào đơn vị bạn đang sử dụng và mức độ ảnh hưởng xếp hạng mà bạn chỉ định cho mỗi thứ nguyên.
Một tùy chọn khác có thể là đặt hàng trước theo tổng thời gian sau đó đến khoảng cách, vì vậy tất cả các bài đăng từ hôm nay được sắp xếp theo khoảng cách; tiếp theo là thứ tự của ngày hôm qua theo khoảng cách, v.v. Hoặc ngược lại, đặt hàng theo khoảng cách, sau đó theo độ tuổi, vì vậy tất cả trong phạm vi (0 - 1000m) đặt hàng theo độ tuổi; tiếp theo là tất cả trong phạm vi (1001 - 2000m), v.v.