Может ли поисковый запрос Azure с использованием синтаксиса запроса Lucene иметь фильтр с функцией geo.distance И другие критерии фильтра? - PullRequest
0 голосов
/ 08 июня 2019

Я запрашиваю индекс поиска Azure, содержащий расписание поездов, перестает использовать синтаксис Lucene с фильтром, использующим функцию geo.distance и значение времени отправления (выраженное в минутах с полуночи. Запрос работает, когда у меня есть либо geo.distanceфункция одна в фильтре, или время отправления в качестве единственного фильтра, но наличие обоих с AND (или &&) возвращает недопустимую синтаксическую ошибку выражения.

{"search": "stationName: Naperville", "queryType ":" full "," filter ":" geo.distance (location, geography'POINT (-88.145118 41.775038) ') le 1.0 AND flightTimeInMinutes ge 1400 "}

Сообщение об ошибке для вышеуказанного запроса:: {"error": {"code": "", "message": "Недопустимое выражение: синтаксическая ошибка в позиции 73 в 'geo.distance (location, geography' POINT (-88.145118 41.775038))) le 1.0 И вылетTimeInMinutes ge1400 '. \ R \ nИмя параметра: $ filter "}}

Любая помощь очень ценится! Заранее спасибо

1 Ответ

2 голосов
/ 08 июня 2019

Я прошу прощения за публикацию и ответ на свой собственный вопрос - но я только что узнал, что синтаксис выражений OData для поиска Azure очень сильно чувствителен к регистру .Мой запрос со строчными буквами "и" работает.

Следующая версия запроса в моем вопросе выполнена успешно: {"search": "stationName: Naperville", "queryType": "full", "filter ":" geo.distance (location, geography'POINT (-88.145118 41.775038) ') le 1.0 и вылет TimeInMinutes ge 1400 "}

...