使用 DMQL2 查询 RETS 服务器时是否可以获取所有具有属性的照片位置?

Is it possible to get all photo locations with properties when querying a RETS server using DMQL2?

我想从 RETS 服务器下载所有 属性 列表,包括所有照片 URL。我正在使用 DMQL2 和 PHRETS 库。属性和照片对象存储在 RETS 服务器的不同表中。

要获取所有照片,我知道我可以下载属性列表,然后遍历每个属性并检索每个 属性 的照片,如下所示:

$results = $rets->Search($resource, $class, $query);
foreach ($results as $r) {
    $photos = $rets->GetObject('Property', 'Photo', $r->get('ListingID'), '*', 1);
    foreach ($photos as $p) {
        // Save the photo locations somewhere…
    }
}

这非常慢,因为有数千个属性。

是否可以通过连接 属性 和对象表(如 MySQL 中的 LEFT JOIN)在单个查询中请求所有照片和属性?

或者,有没有一种方法可以在一个请求中下载 所有 个照片对象,这样我就可以使用它们的 ListingID 键将它们与属性相关联?

对于更快地获取所有数据还有其他建议吗?

您可以一次下载所有照片。一些服务器还支持媒体资源和 类,允许您获取一个列表或一组列表的所有照片的 URL。如果您的服务器支持,我会使用它,因为它通常更快。

使用 phrets,我认为一次下载所有图像是这样的:

$photos = $rets->GetObject("Property", "Photo", $record[ListingID], "*", 1);

我从这个 SO 答案中复制了它:PHRets: Using PHP to download real estate listing photos

部分可能,但目前无法在单个查询中下载整张照片和属性。

我们可以在一次查询中下载多个列表的图片。检查下面的示例查询。

$photos = $rets->GetObject("Property", "Photo", "12345,12346,12347", "*", 1);
foreach ($photos as $p) {
    $listingId = $p['Content-ID']; // save photo based on each listingIds
    //continue
}

这里我们可以提供逗号分隔的 listingIds 的第三个参数。因此,您可以将 listingIds 作为批次传递。

注意: MLS 仍然保持提取速度。一些 MLS 板可能会根据要求临时增加带宽。在这段时间内尝试提取完整图像。