2017-02-16 31 views
1

Предположим, у меня есть следующий сценарий:Azure Поиск Расстояние фильтр с переменным расстоянием

Поиск UI, чтобы позволить людям найти сантехников, которые в состоянии обслуживать свой домашний адрес.

Когда водопроводчик вводит свою информацию в систему, они предоставляют свои координаты и максимальное расстояние, которое они желают совершить.

Затем пользователь может ввести свои домашние координаты и должен быть представлен список сантехники, которые имеют право на участие.

Глядя на функцию поиска geo.distance для поиска Azure, я не вижу, как это сделать. Сценарии, где поисковик обеспечивает расстояние, хорошо покрыты, но не там, где расстояние различно для каждой записи поиска.

documentation приводится следующий пример:

$filter=geo.distance(location, geography'POINT(-122.131577 47.678581)') le 10 

Это работает правильно, но если я пытаюсь изменить 10 в поле maxDistance, он терпит неудачу с

Сравнение должно быть между полем, диапазон или вызов функции и буквальное значение

Мое требование кажется fa но я теперь задаюсь вопросом, возможно ли это в настоящее время с Azure Search?

ответ

1

Я нашел azure feedback suggestion с просьбой об этой функции, но никаких новостей о том, когда и когда она будет реализована. Поэтому можно с уверенностью предположить, что этот сценарий в настоящее время не поддерживается.

1

Чтобы добавить к ответу Павла, одним из возможных способов обхода является использование консервативно большого постоянного значения вместо ссылки на поле maxDistance в выражении $filter. Затем вы можете отфильтровать результирующий список сантехников на клиенте, чтобы учесть максимальное расстояние каждого сантехника и составить окончательный список сантехников.

+0

Определенный вариант, если отбросить результаты на клиенте, значительно затрудняет подкачку. –