2013-09-11 2 views
2

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

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

Мой случай использования:

Использование случай, чтобы загрузить все записи определенного типа с января этого года. Итак, я выдаю запрос с лимитом 500 и загружаемыми записями. Я просматриваю данные и получаю максимальную МОДИФИЦИРОВАННУЮ дату. Затем я выдаю другой запрос с этого момента.

Однако я обнаружил, что сервер не сортирует данные по MODIFIED дате и возвращает его. Таким образом, данные в каждой партии содержат пробелы.

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

ответ

3

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/

+0

Я считаю, что мой местный MLS RETS имеет предел 2500 возвращенных записей. Если в диапазоне дат для запроса запроса имеется более 2500 записей, как мне их получить? Если я снова запрошу диапазон дат, я получу те же 2500 записей. И у меня нет больше информации, чтобы знать, как сузить поиск, кроме проб и ошибок, я думаю? – wuliwong

+0

Думаю, я ответил на свой вопрос. Вы можете использовать идентификатор листинга. – wuliwong

0

Я не уверен, если это универсальный, но 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])"

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

 Смежные вопросы

  • Нет связанных вопросов^_^