Есть два пробела с именами, например, Company
и Cars
. В пространстве Company
есть поля идентификатора компании (первичный индекс) и геолокации (точка) (вторичный индекс). В пространстве Cars
есть машина (первичный индекс) и компании (массив всех компаний, у которых можно арендовать этот автомобиль). Мне нужно найти топ-10 компаний в указанном прямоугольнике, где можно арендовать конкретный автомобиль. Какое (если можно так сказать) лучшее решение для достижения этой цели?
Здесь мне нужно совместить пространственные и непространственные индексы, чтобы получить результат. Мой план поиска состоит в том, чтобы найти кортеж автомобилей и получить все компании (их может быть 1000), а затем в другом месте отфильтровать 10 из указанного прямоугольника.
Мой вариант использования чем-то похож на этот (не вариант использования аренды автомобиля), но вся логика одинакова. Компаний будет намного больше, чем автомобилей (миллионы компаний и 300-500 тысяч автомобилей). Как оптимизировать мой план, чтобы получить эту информацию, какие индексы использовать и т. Д.? Как видите, для одного select
нужны пространственные и непространственные условия.