Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 解决方案问题-搜索查询太多_Performance_Solr - Fatal编程技术网

Performance 解决方案问题-搜索查询太多

Performance 解决方案问题-搜索查询太多,performance,solr,Performance,Solr,我们有一个PHP web应用程序,它使用SOLR进行搜索。该应用程序使用CURL连接到SOLR服务器,该服务器使用数千个预定义关键字循环运行。这将在给定的时间为SOLR创建数千种不同的搜索需求 我的问题是,当一个用户登录该应用程序时,一切都正常工作。当有多个用户尝试运行应用程序时,我们会从服务器收到此响应 无法连接到xxx.xxx.xxx.xxx:无法分配请求的 地址连接到xxx.xxx.xxx.xxx失败:无法分配请求的地址 地址失败 我们的假设是,SOLR服务器在给定的时间内无法处理这么多的

我们有一个PHP web应用程序,它使用SOLR进行搜索。该应用程序使用CURL连接到SOLR服务器,该服务器使用数千个预定义关键字循环运行。这将在给定的时间为SOLR创建数千种不同的搜索需求

我的问题是,当一个用户登录该应用程序时,一切都正常工作。当有多个用户尝试运行应用程序时,我们会从服务器收到此响应

无法连接到xxx.xxx.xxx.xxx:无法分配请求的 地址连接到xxx.xxx.xxx.xxx失败:无法分配请求的地址 地址失败

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

任何帮助都将不胜感激

谢谢


Arun S

对关键字子集进行排序,然后只进行一次查询怎么样?
然后,如果没有找到任何内容,请尝试下一个关键字子集

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

SOLR中是否有最大连接限制

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


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

每个用户请求都会向SOLR生成数千个请求?为了提供这样的服务,您需要相当高的可扩展性。请解释为什么您需要为单个用户的请求连续运行1000个查询?您可能需要重新设计应用程序。同时,让你的程序在两次请求之间休眠75毫秒(愚蠢的经验法则!),以减少随机故障(如果你正遇到这种情况的话)。如果关键字是预定义的,并且有很多关键字,那么最好将循环作为一项计划任务(例如,每天一次)进行,并将结果保存在某个位置。发布在solr用户邮件列表上:@aitchnyu每个用户都有一个预定义的关键字字典,其中包含500个或更多关键字。假设我们有500个关键词和10个用户,那么我们总共有500X10个搜索查询要解决。我们无法添加睡眠,因为它会减慢应用程序的速度。SOLR中是否有任何最大连接限制?是否有任何方法可以提高SOLR服务器的性能。?