我在房地产网站上工作,并且能够从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*)
,它应该会显示所有包含&s 39的城市。但我无法使其发挥作用。我在过去的几天里非常努力,只有极少数的互联网资源,我发现自己无法解决这个问题。
非常感谢任何帮助。
答案 0 :(得分:0)
尝试对您的查询字符串进行urlencoding。加号通常不会被编码,因此在处理请求时会被忽略。您也可以使用 NOW 令牌并将其发送为(130 = 2013-10-02T16:00:00-现在),(213 = A)
答案 1 :(得分:0)
RETS本身并没有真正为您提供有效执行此操作的方法。尽管可能还有其他更疯狂的方法,但主要的两个方法是:
1)从服务器下载元数据,以便您拥有每个字段'在本地数据库中查找,您可以在其中执行这些更动态的查询。
2)当有人输入3个字母时,让后端进程检索城市字段的查找值,并尝试直接使用PHP查找可能的匹配项。
在这两个选项中,我强烈推荐第一个,因为它会更快,更有能力。
一旦您的访问者使用您的建议选择感兴趣的城市,您就可以使用基本的完全匹配条件在RETS搜索中使用该值。