【问题标题】:RETS invalid query syntax errorRETS 无效查询语法错误
【发布时间】:2018-01-29 19:48:53
【问题描述】:

我目前正在开发一个网站并从 RETS(房地产交易标准)API 中提取列表。我的一切工作正常,但我的问题是在尝试深入挖掘查询时出现。作为参考,我正在使用Node RETS Client,但我不确定它与这个问题有什么关系。

当我运行以下查询时,它会返回来自适当关联的结果(REBGV = 大温哥华房地产委员会)

{ QueryType: 'DMQL2',
 Format: 'COMPACT-DECODED',
 Count: 1,
 StandardNames: 0,
 RestrictedIndicator: '***',
 Limit: 10,
 SearchType: 'Property',
 Class: 'RD_1',
 Query: '(LM_Char10_4=REBGV)' }

但是,当我运行此查询时,我收到错误 Illegal number in range for field [L_Area]:

{ QueryType: 'DMQL2',
 Format: 'COMPACT-DECODED',
 Count: 1,
 StandardNames: 0,
 RestrictedIndicator: '***',
 Limit: 10,
 SearchType: 'Property',
 Class: 'RD_1',
 Query: '(LM_Char10_4=REBGV),(L_Area=Vancouver)' }

... 这让我很困惑,因为该选项中没有任何数字。有没有人遇到过这样的事情或对我在查询中做错了什么有任何见解?

【问题讨论】:

  • 还没有弄乱RETS,但是...您尝试过使用数字吗?它有效吗?可能还有另一个 API 端点用于通过区域名称查找 ID 号,以便您可以将 Vancouver 转换为 nnnn
  • 该死的你是对的!它需要一个数字。并不是说元数据或响应曾经使用数字来告诉您....谢谢!
  • NP!永远不要相信自称为REST...或者在这种情况下是RETS的API!
  • 顺便说一句,当您弄清楚如何将区域转换为正确的 ID 时,我建议您发布一个自我回答来证明这一点。与我回答“我很幸运”相比,这对其他人更有帮助。
  • 伙计,这个 API 和其他 API 一样,用起来太糟糕了。但是,是的,一旦我得到一个好的解决方案,我肯定会回答。谢谢!

标签: javascript node.js rets


【解决方案1】:

使用Node RETS Client 解决了这个问题,但无论如何我都会发帖以帮助遇到此问题的人。

当您获取某个类的元数据时,它会为您提供适当的名称,以便在不同的上下文中查找更多信息

{ 
  MetadataEntryID: '0166D2F74FDC3AF8',
  SystemName: 'L_Area',
  StandardName: 'ListingArea',
  LongName: 'Area',
  DBName: 'Area',
  ShortName: 'Area',
  MaximumLength: '5',
  DataType: 'Small',
  Precision: '',
  Searchable: '1',
  Interpretation: 'Lookup',
  Alignment: 'Right',
  UseSeparator: '0',
  EditMaskID: 'int_5',
  LookupName: 'Area',
}

在我的例子中,区域字段实际上是由数字引用的,因此要获取字段的所有可能值的列表,请使用“METADATA-LOOKUP-TYPE”标题。在 Node Rets 客户端中,这样做是这样的

client.metadata.getLookupTypes("Property", "Area")

因此它会在 Property 类中搜索具有 AreaLookupName 的字段,然后返回一个包含所有可能值的漂亮列表。

那么当你查询的时候,你可以像(L_Area=1,2,3)这样搜索,就知道你在搜索什么区域了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    相关资源
    最近更新 更多