Solr刻面性能

Solr刻面性能,solr,Solr,我正在使用Solr方面字段,遇到了一个我不理解的性能问题。考虑这两个查询: q=word&facet.field=CONTENT&facet=true&facet.prefix=&facet.limit=10&facet.mincount=1&facet.method=enum&rows=0 q=word

我正在使用Solr方面字段,遇到了一个我不理解的性能问题。考虑这两个查询:

  • q=
    word&facet.field=CONTENT&facet=true&facet.prefix=&facet.limit=10&facet.mincount=1&facet.method=enum&rows=0
  • q=
    worda
  • 唯一的区别是在第一个查询中有一个空的
    facet.prefix

    第一个查询在大约20秒后返回(
    QTime
    20000),而第二个查询只需要80毫秒(
    QTime
    80)。为什么会这样

    另请注意:
    facet.method=fc
    使查询“永远”运行,并最终以
    org.apache.solr.common.SolrException失败:字段内容上的UnInvertedField faceting值太多

    这是Solr 1.4的版本。

    来自本文档:

    facet.prefix参数将用于刻面的术语限制为 以给定的字符串前缀开始

    这意味着你用的术语更少。 现在,我非常确定刻面时间包含在Qtime中(正如这篇文章所示:)


    因此,这意味着更少的术语,更少的时间。

    可能不会在内容上刻面,因为这可能有许多不同的术语,在内容上刻面是没有意义的。尝试在类别字段或其他具有较少唯一性术语的字段上进行刻面处理。

    重新启动Solr server后,您是否尝试过以相反的顺序执行它们

    通常第一个查询需要更多的时间,如果下一个查询恰好与前一个查询有更多的共同点,那么会有缓存命中,响应时间将是难以置信的

    此外,请注意,“enum”更适合于内唯一术语数量较少的方面字段

    此外,尝试增加到一个非常大的数字,并检查您的缓存命中率

     SOLR_DOMAIN:PORT/solr/#/collection1/plugins/cache?entry=fieldValueCache,filterCache
    

    谢谢你的提示。我用默认值尝试了一下,3分钟后得到了答案。然后我增加了
    filterCache
    十次,三分钟后得到了答案。然后我又增加了
    filterCache
    十次,大约15分钟后得到了答案。一定是别的东西。