我正在使用 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/