由于 timeAllowed 参数,如何识别 SOLR returns 空结果?

Ways to identify that SOLR returns empty results because of timeAllowed parameter?

我正在使用 timeAllowed 来处理 API 满足 SLA 的请求。我假设我所有的查询响应都不到 2 秒。我的 API sla 是 5 秒。所以我将 3 秒设置为 timeAllowed 参数。

数据在增长,使用模式也发生了变化。因此 2 秒 sla 不匹配。我明白 SLA 必须修改。

但我想区分 timeAllowed 参数导致 0 个结果和没有结果。

有什么办法吗?

如果超过timeAllowed时间,partialResults键将在响应中设置为真:

"responseHeader": {
  "status": 0,
  "zkConnected": true,
  "partialResults": true,
  "QTime": 20,
  "params": {
    "q": "*:*"
  }
},

请注意,如果 Solr 无法联系云集合中的其中一个分片,也将设置此键 - 即它表示返回的响应只是部分响应,而不是 timeAllowed 参数被超出。

不过,Solr 服务器日志应该在 WARNING 级别显示一条记录消息,据我从源代码中得知已超过时间限制。