2011-07-28 22 views
1

我试图在我的应用程序中实现自定义搜索。该表的结构下面给出与cakephp一起使用搜索服务器

主表:

老师

子表:

技能

skill_values

城市

city_values

检索将与位于在与基准场USER_ID和city_id表city_values位置被触发。这里的城市名称和它的经度和纬度都在表格城市中找到。 搜索还包括技能,表格关系类似于城市。用户表和skill_values表可以与表skill_values中的字段user_id相关联。表skill_values中与field skill_id相关的表格技能和skill_values。

在这里我们需要找到谁执行此搜索的用户的位置,并需要过滤这一结果与20成方圆。还有其他一些过滤器。

我的问题是,我需要过滤这些结果,而无需重新加载页面。所以我使用ajax,但是如果记录数量增加,我的ajax请求将花费大量时间来获得响应。

这是一个好主意,如果我使用像狮身人面像和Solr的一些开源搜索服务器从服务器获取的结果? 我使用CAKEPHP进行开发,我的应用程序托管在云服务器上。

回答

0

...但如果记录数增加我的ajax请求将需要很多时间才能得到响应。

无论搜索技术如何,都应该有某种分页机制。

因此,应该能够设置的限制或每页返回的结果的最大数量。

当用户执行搜索查询时,可以使用Javascript来请求结果的第一页。

然后,您可以简单地增加页码,并要求第二,第三,第四页,等

这应该意味着前N个结果总是出现在大致相同的时间量。

然后,您可以决定是否要按顺序请求每个搜索结果页面(即作为每个成功响应的回调),或者如果您等待某种用户输入(即单击“更多'链接或滚动到结果的最后)。

TwitterFacebook的时间轴/新闻提要页面就是这种技术的一个很好的例子。