2012-04-10 87 views
0

我们有一个使用SOLR进行搜索的PHP Web应用程序。 APP正在使用CURL连接到SOLR服务器,并且使用成千上万的预定义关键字循环运行。这将在特定时间为SOLR创建数千个不同的搜索问题。SOLR问题 - 搜索查询太多

我的问题是,当一个用户登录到应用程序时,一切都按预期工作。当有多个用户试图运行应用程序时,我们从服务器获取此响应。

无法连接到的xxx.xxx.xxx.xxx:不能分配请求 addressFailed连接到的xxx.xxx.xxx.xxx:不能分配请求 addressFailed

我们的假设是, SOLR服务器无法在给定的时间处理这么多的搜索查询。如果是的话,有什么解决方案来克服这一点? SOLR中是否有像保持活动一样的设置?

任何帮助将不胜感激。

感谢,

阿伦小号

+0

每个用户请求都会向SOLR生成数千个请求?为了提供这样的服务,您需要相当高的可扩展性 – 2012-04-10 12:53:12

+1

还请解释为什么您需要为单个用户的请求连续运行一千个查询?您可能不得不重新设计您的应用程序。同时,让你的程序在缓解随机故障(如果这是你所拥有的)的请求之间睡75毫秒(愚蠢的经验法则!)。 – aitchnyu 2012-04-10 13:02:28

+0

与上述同意。如果关键字是预定义的并且有很多这样的关键字,那么将循环作为计划任务(例如,每天一次)并将结果保存在某个地方是个不错的主意。 – 2012-04-10 13:57:04

回答

0

怎么样的中用OR关键字的一个子集,只是做一个查询?
然后,如果没有找到,请尝试使用关键字的下一个子集?

对于这种特殊情况,我认为你需要提高你的应用程序性能,而不是SOLR的,即使你需要做一些欺骗。

SOLR中是否有最大连接限制?

这很大程度上取决于您使用的硬件和操作系统,以及您可能使用的servlet容器。

如果你需要SOLR更多的性能,你可能需要调整你的模式(你可以在这里发布更多的帮助),垂直销售(ram目录或SSD)或考虑主从设置。