java - SOLR documentCache JMX 指标澄清

标签 java solr lucene

我正在尝试了解 SOLR 中缓存的 JMX 数据 -

根据我的理解,“size”属性表示缓存的大小(以 KB 为单位)[引用此文档 - https://lucene.apache.org/solr/guide/7_0/performance-statistics-reference.html#statistics-for-caches ]。

{
  "CACHE.searcher.documentCache":{
    "lookups":0,
    "hits":0,
    "cumulative_evictions":0,
    "size":30,
    "hitratio":0.0,
    "evictions":0,
    "cumulative_lookups":370080,
    "cumulative_hitratio":0.09,
    "warmupTime":0,
    "inserts":30,
    "cumulative_inserts":337571,
    "cumulative_hits":32509}}

并且在配置中,size参数是可以缓存的最大文档数量[引用此-https://lucene.apache.org/solr/guide/7_0/query-settings-in-solrconfig.html#documentcache ]。

<documentCache class="solr.LRUCache"
               size="15000"
               initialSize="512"
               autowarmCount="100"/>  

这两个假设都是真的吗?

另外,为什么我当前的搜索器文档缓存大小这么小?我可以看到有很多插入,但尺寸只有 30。为什么?

最佳答案

当打开新的搜索器时,缓存的内容将被删除 - 通常是在发生提交或优化时(底层索引已更改并且您希望这些更改可见)。

针对该特定搜索者跟踪插入点击等中的值。在您的示例中,当前大小为 30 - 并且已进行 30 次插入 - 因此由于溢出而没有从缓存中删除任何内容。配置中给出的大小是缓存将保存的最大项目数,而 JMX 统计信息中的数字是缓存的实际大小。由于您在 hits 字段中有 0 等,因此该缓存从未有过任何体面的用途,因为到目前为止每个请求都会导致插入而不是返回查找缓存。

cumulative_are tracked since the node was started - 不仅适用于当前索引搜索器。

命中率相当低,可能是因为搜索器关闭和重新打开过于频繁,缓存无法产生任何实际效果。

关于java - SOLR documentCache JMX 指标澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53771121/

相关文章:

java - 在不使用 java.awt.Color 的情况下从 HSV(Java 中的 HSB)转换为 RGB(Google App Engine 不允许)

java - 如何使用lucene更新索引目录

java - 显示可选择的动态下拉列表

java - if 语句什么时候完成条件检查?

elasticsearch - Lucene/Solr搜索文档创建

java - 为什么 Apache Nutch 清理作业在云模式下使用 Apache Solr 失败

将比较两个字段的 Lucene 查询

java - Elastic Search - Boosting/Scoring - 两个不同长度的词

java - 上传到 Blobstore 会出现 Java 堆 OutOfMemoryError

sql - 使用 net.sourceforge.jtds.jdbc.Driver 时 varchar(max) 列出错