Solr小平面表现

时间:2013-10-18 11:55:56

标签: solr

我正在使用Solr facet字段并遇到一个我不明白的性能问题。考虑这两个问题:

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

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

    并注意:facet.method=fc使查询“永远”运行,并最终以org.apache.solr.common.SolrException: Too many values for UnInvertedField faceting on field CONTENT失败。

    这是Solr 1.4。

3 个答案:

答案 0 :(得分:2)

来自此文档:http://docs.lucidworks.com/display/solr/Faceting

  

facet.prefix参数限制了与其相关的术语   从给定的字符串前缀开始。

这意味着您可以通过较少的条款来面对。 现在,我非常确定Qtime中包含了刻面时间(正如这篇文章所示:http://www.mail-archive.com/solr-user@lucene.apache.org/msg39859.html)。

这意味着更少的条款,更少的时间。

答案 1 :(得分:0)

也许不是内容的一个方面,因为这可能有很多不同的术语,并且没有任何意义。尝试使用较少的唯一术语在类别字段或其他字段上进行分面。

答案 2 :(得分:0)

重新启动Solr服务器后,您是否尝试以相反的顺序执行它们?

通常第一个查询需要花费更多时间,如果下一个查询碰巧与之前的任何查询有更多共同点,那么缓存命中和响应时间就会令人难以置信。

此外,请注意' enum'更适合于具有较少数量的唯一术语的分面字段。

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

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