如何查看Solr / Lucene QueryResultCache的内容?

时间:2017-03-22 21:13:19

标签: caching solr lucene

我在solr config xml中有一个查询结果缓存的默认配置:

<queryResultCache class="solr.LRUCache"
                  size="512"
                  initialSize="512"
                  autowarmCount="0"/>

据我所知,此设置意味着Solr将缓存512最近使用的查询响应,或者换句话说512个结果ID。此数据将帮助Solr进行相同或类似的查询。一些性能测试和其他观察表明查询缓存不能按预期工作或工作不佳。

  1. 是否有可能看到目前缓存了哪些查询?

  2. 如果缓存了+product:apple+product:cherry查询的回复,是否会将它们用于执行查询+product:apple +product:cherry

1 个答案:

答案 0 :(得分:1)

  1. 不容易。我想你可以将一个调试器附加到Solr并尝试检查它们,直到找到它,不确定它会有多简单(和实用)。

  2. 不,Solr不会这样做。但是,如果您使用过滤器查询而不仅仅是查询。那会有用。过滤查询及其缓存(filterCache)通常是最重要的缓存。因此q=abc&fq=product:apple&fq=product:cherry将使用缓存的fq,如果它们之前被缓存的话。每个过滤器查询都单独缓存。