由于 Alfresco 中 Solr 索引的最终一致性,我最近注意到了一个问题。问题是文件没有出现在文件上传后立即执行的搜索中。我一直在查看配置属性,看看是否可以提高性能(减少延迟)。
看起来更改alfresco.cron
属性会有所帮助,因此 Solr 会更频繁地检查存储库更新,而不是默认的 15 秒alfresco.cron=0/15 * * * * ? *
但是,我不清楚该alfresco.lag=1000
属性的作用或目的是什么。Alfresco wiki说:
每个“轨道”将一直运行到它开始的时间 - 减去这个滞后
这对我来说毫无意义 - 什么是“轨道”,以及在它开始之前如何运行?
Alfresco 4.1 docs和这篇文章说:
这指定了跟踪器属性以设置 Solr 全文索引当前落后于存储库更新的时间(以秒为单位)。
和
Solr 索引在后台更新。这是此 Solr 索引当前落后于存储库更新的时间(以秒为单位)。
但我一点也不聪明——这是否意味着 Solr 可能比存储库晚 1000 秒(由于 cron 间隔加上 15 秒)?如果是这样的话,这似乎是一个巨大的滞后 - 我希望最多几秒钟。
调整的实际效果是alfresco.lag
什么(例如,如果我大大减少它或将其设置为零会发生什么)?Alfresco 文档中的示例值为 0 秒,但配置文件中的默认值为 1000 - 调整此属性的权衡是什么?
更新:我怀疑单位记录错误,实际上是毫秒而不是秒,因为org.alfresco.solr.tracker.CoreTracker
有以下代码:
long startTime = System.currentTimeMillis();
state.timeToStopIndexing = startTime - lag;