-2

我正在一个房地产网站上工作,并且能够显示来自 rets 服务器的列表。我正在使用 phrets。我无法使搜索系统正常工作。这是我的搜索查询:

  $search = $rets->SearchQuery(
        'Property',     // Resource
        1,      // Class
         '((130=2013-10-02T16:00:00+),(213=A))',    // DMQL
        array(
            'Format'    => 'COMPACT-DECODED',
            'Select'    => 'sysid,13,1491',
             'Count'        => 1,
             'Limit'        => 3
            )
        );

130=系统上次更新日期。

213=状态的系统名称。

它运作良好。它可以提取我想要的所有列表。但我浏览了一些房地产网站。他们在第一页执行搜索查询。当有人在输入框中写下 3 个或更多字母时,输入框下方会出现一个下拉列表,其中包含以这些字母开头的少数城市,单击任何城市都会从该城市中提取列表。

但在我的例子中,我的城市系统名称是 1491,当我写 (1491=somerset) 时,它会提取萨默塞特市的所有列表。我想知道如何在写下几封信的同时迈出第一步,这将告诉我与这些信件相关的城市名称。

由于 DMQL 查询建议我这样做,(1491=*som*)它应该会显示所有包含“som”的城市。但我不能让它工作。在过去的几天里,我非常努力,由于互联网上的资源很少,我发现自己无法弄清楚。

任何帮助将不胜感激。

4

2 回答 2

0

RETS 本身并没有真正为您提供有效执行此操作的方法。尽管可能有其他更疯狂的方法可以做到这一点,但主要的两种方法是:

1) 从服务器下载元数据,以便您可以在本地数据库中查找每个字段,您可以在其中执行这些更动态的查询。

2) 当有人输入 3 个字母时,让后端进程检索城市字段的查找值,并尝试直接使用 PHP 查找可能的匹配项。

在这两个选项中,我强烈推荐第一个,因为它更快、更强大。

一旦您的访问者使用您的建议来选择感兴趣的城市,您就可以使用基本的完全匹配条件在 RETS 搜索中使用该值。

于 2014-12-25T04:18:25.040 回答
0

尝试对您的查询字符串进行 urlencoding。加号通常不会被编码,因此在处理请求时会被忽略。您还可以使用NOW令牌并将其发送为 (130=2013-10-02T16:00:00-NOW),(213=A)

于 2014-09-23T16:07:21.760 回答