Как делать постраничные запросы в RETS?

Я использую Java-клиент (jrets) для запроса сервера RETS. Этот сервер rets не поддерживает функцию OFFSET.

Администратор сервера сказал мне использовать поле MODIFIED для просмотра записей. Однако я обнаружил, что этот процесс не работает.

Мой вариант использования:

Вариант использования — загрузить все записи определенного типа с января этого года. Итак, выдаю запрос с лимитом 500 и скачиваю записи. Я просматриваю данные и получаю максимальную ИЗМЕНЕННУЮ дату. Затем я выдаю еще один запрос с этого момента.

Однако я обнаружил, что сервер не сортирует данные по дате ИЗМЕНЕНИЯ и не возвращает их. Таким образом, данные в каждой партии содержат пробелы.

Есть ли лучший способ добиться того, что я хочу сделать?


person feroze    schedule 11.09.2013    source источник


Ответы (2)


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

Сервер RETS должен поддерживать запросы диапазона дат, например (date_field=2009-01-01-2009-01-25), или даже время, например (MODIFIED=2013-08-01T00:00:00-2013-08-31T23:59:59).

Таким образом, вы можете обработать пакет запросов, который вам нужно отправить, чтобы получить все списки. Ваш часовой пояс, который вы установили в скрипте, повлияет, поэтому вам нужно знать, какое время на сервере. Некоторые будут использовать UTC/GMC, а некоторые будут использовать свое местное время.

Вот дополнительная помощь, https://www.flexmls.com/developers/rets/tutorials/dmql-tutorial/

person Anthony Hatzopoulos    schedule 12.09.2013
comment
Я считаю, что мой местный MLS RETS имеет ограничение в 2500 возвращаемых записей. Если между диапазоном дат для заданного запроса более 2500 записей, как мне их получить? Если я снова запрошу диапазон дат, я получу те же 2500 записей. И у меня нет больше информации, чтобы узнать, как сузить поиск, кроме как, я думаю, методом проб и ошибок? - person wuliwong; 07.07.2017
comment
Думаю, я ответил на свой вопрос. Вы можете использовать идентификатор листинга. - person wuliwong; 07.07.2017

Я не уверен, что это универсально, но GAMLS RETS отправляет ответы, отсортированные по L_ListingID.

я могу начать с

query = "(L_UpdateDate=2017-01-01T11:42:59Z+)"

Затем найдите наибольшее 'L_ListingID в ответе.

Создать новый запрос

query = "(L_UpdateDate=2017-01-01T11:42:59Z+),(L_ListingID=[LARGEST_Listing_ID])"

И продолжайте, пока я не получу пустой ответ.

person wuliwong    schedule 07.07.2017