Solr Qtime与实时的差异

时间:2014-09-08 11:03:38

标签: solr solrj

我试图找出导致我的Solr应用程序中Qtime与实际响应时间之间差异的原因。 SolrServer与生成查询的程序在同一台机器上运行。 我的Qtimes平均在19ms左右,但实际得到我的回复需要30ms。 这可能听起来不是很多,但我使用Solr来处理每毫秒都很重要的一些模糊的东西。

我认为时间差异不是由磁盘I / O引起的,因为使用RAMDirectoryFactory并没有加快速度。

使用SolrEmbeddedServer而不是SolrHttpServer并不会导致加速(因此不是Jetty会导致差异吗?)

查询程序和Solr实例之间的数据传输是否导致时差?更重要的是,我怎样才能最大限度地减少这段时间?

问候

1 个答案:

答案 0 :(得分:0)

这是众所周知的FAQ

  

为什么QTime Solr的返回时间低于我的时间   在我的客户中测量?

     
    

“QTime”仅反映Solr处理的时间     请求。它没有反映从中读取请求的任何时间     通过网络的客户端,或将响应写回     客户。 (由于QTime实际上应该是显而易见的     包含在回复正文中。)

         

在此网络I / O上花费的时间可能是一项非常重要的贡献     到客户观察到的总时间,特别是因为     Solr可以在很多情况下为“存储的字段”流式传输     响应(即:由“fl”参数请求)直接来自索引     部分响应写入,在这种情况下磁盘I / O读取那些     存储的字段值可能有助于观察到的总时间     在QTime中测量的时间以外的客户。

  
  

如何最大限度地缩短这段时间?

不确定它是否会产生任何影响,但请确保您使用的是javabin格式,而不是json或xml(wt = javabin)