gpt4 book ai didi

Solr HTTP Api - 响应状态

转载 作者:行者123 更新时间:2023-12-04 14:22:14 24 4
gpt4 key购买 nike

当通过他的 HTTP Api 使用 SOLR 时,他用一个名为 responseHeader 的对象进行响应,他在其中放置响应的状态

<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">13</int>
<!-- ... -->
</lst>
<!-- ... -->
</response>

我的第一个问题:状态属性的可能值是什么?它们的含义是什么?我知道值 0 表示调用成功。

我的第二个问题:通常,Solr 会以 200 代码响应成功调用。我们能否获得不同于 0status(在发生错误的情况下)并且仍然获得 200 的 http 响应代码?

我使用 SOLR 4.6

注意:我问这些问题是因为我的 SOLR 没有索引一些集合,尽管他没有出现任何错误并且响应代码是 200!

谢谢

最佳答案

状态代码通常对应于返回的 HTTP 代码,除了 200 返回为 0。这是在 Solr 内部抛出 SolrException 时作为数字代码实现的。当不久前在 solr-user 邮件列表上被问到这个问题时,following answer from Erik Hatcher was given :

Is there a reference to this status-codes?

只是源代码。 SolrCore#setResponseHeaderValues,主要使用 SolrException 中指定的代码:

   BAD_REQUEST( 400 ), 
UNAUTHORIZED( 401 ), // not currently used
FORBIDDEN( 403 ),
NOT_FOUND( 404 ),
SERVER_ERROR( 500 ),
SERVICE_UNAVAILABLE( 503 ),
UNKNOWN(0);

current version of SolrCore can be seen on Github .

您可能会假设 http 错误代码在大多数情况下都与 status 值匹配,但肯定有异常(exception) - 例如,如果 HTTP 请求根本没有到达 Solr,并且错误是只是由 jetty 返回(如果安装严重失败,或者如果您尝试访问/solr 以外的其他内容)。

在您的示例中,即使在将数据导入集合时该操作未触发任何操作,请求也可以完美无缺。如果您的导入查询以 0 个文档结束,那不是错误 - 如果导入开始(导入通常是异步操作),那仍然是一个有效且正常的请求,即使稍后的最终结果无效.

尝试理解导入失败的原因可能会更好(并为此使用一个单独的问题,其中包含有关您如何尝试编制索引的所有相关详细信息,日志中的任何错误说明(您可以调整日志在 Web 界面中登录下的级别)以及您期望的结果),而不是查看响应中的 status 字段。

关于Solr HTTP Api - 响应状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53119942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com