我正在使用java客户端(jrets)来查询RETS服务器。此rets服务器不支持OFFSET功能。
服务器管理员告诉我使用MODIFIED字段作为翻阅记录的方法。但是,我发现这个过程不起作用。
我的用例:
用例是从今年1月起下载某种类型的所有记录。因此,我发出一个限制为500的查询并下载记录。我查看数据,获得最大修改日期。然后我从那时开始发出另一个查询。
但是我发现服务器没有按MODIFIED日期对数据进行排序并返回它。因此,每批中的数据都包含差距。
有没有更好的方法来实现我想要做的事情?
答案 0 :(得分: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/
答案 1 :(得分: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])"
继续前进,直到我得到空洞的回应。