如何在RETS中进行分页查询?

时间:2013-09-11 18:45:01

标签: rets

我正在使用java客户端(jrets)来查询RETS服务器。此rets服务器不支持OFFSET功能。

服务器管理员告诉我使用MODIFIED字段作为翻阅记录的方法。但是,我发现这个过程不起作用。

我的用例:

用例是从今年1月起下载某种类型的所有记录。因此,我发出一个限制为500的查询并下载记录。我查看数据,获得最大修改日期。然后我从那时开始发出另一个查询。

但是我发现服务器没有按MODIFIED日期对数据进行排序并返回它。因此,每批中的数据都包含差距。

有没有更好的方法来实现我想要做的事情?

2 个答案:

答案 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])"

继续前进,直到我得到空洞的回应。