php - 对 SOLR 的第一次查询比以下查询花费的时间长 30 倍

标签 php solr

我正在使用 Solr PHP 扩展。代码看起来像这样:

$client =  new SolrClient($instance);
$response1 = $client->query($query1);
$response2 = $client->query($query2);

第一次查询大约需要 160 毫秒。第二个(第三个,第四个...)查询大约需要 5 毫秒。查询不同,因此它不是缓存。这不是查询的具体细节,因为切换查询位置会使 $query2 非常慢,而 $query1 很快。

显然这不是关于查询,而是关于第一次连接到 SOLR。这与网络延迟无关,因为第二个查询非常快。关于它是什么以及如何加快它的任何想法?

最佳答案

问题解决了!解析 SOLR 主机导致延迟。即使它是/etc/hosts 中列出的本地主机或域,它仍然需要很多时间。将域更改为 IP 使所有查询的运行时间都在 5 毫秒内。

有趣的细节。使用 file_get_contents 时解析时间低于 1 毫秒。但是当使用 CURL 或 SOLR 客户端时,它花费了 160ms。我们仍然没有弄清楚这个问题,但这是一个不同的故事。

关于php - 对 SOLR 的第一次查询比以下查询花费的时间长 30 倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40304177/

相关文章:

php - 在php函数中计算第13天的错误分钟

php - 从 Prestashop 后台的订单详细信息中获取数据库值

mysql_query() 中的 Php 变量

php - 多行自动计算和复选框?如何减少呢?

java - 如何使用Solr的DirectUpdateHandler2正确回滚提交?

java - 如何安装 Solr 以便 jetty 不会膨胀其文件?

solr - 无法对 Solr 地理空间搜索结果进行排序

solr - 修改 schema.xml 后重新加载 Solr 核心时出错。无法达到复制因子 1(仅找到 0 个副本)

随变量帮助一起发送的 php 引号

php - 无法在 Laravel 中迁移文件