我最近注意到由于Alfresco中Solr索引的最终一致性而导致的问题。问题是文件没有出现在上传文件后立即执行的搜索中。我一直在查看配置属性,看看我是否可以提高性能(减少延迟)。
看起来更改alfresco.cron
属性会有所帮助,因此Solr会更频繁地检查存储库更新,而不是默认的15秒alfresco.cron=0/15 * * * * ? *
但是,我不清楚alfresco.lag=1000
属性的作用或目的是什么。 Alfresco wiki说:
每个“轨道”将一直运行到它开始的时间 - 减少这个滞后
这对我来说毫无意义 - 什么是“轨道”,以及如何运行直到它开始?
Alfresco 4.1 docs和this article说:
这指定跟踪器属性来设置时间(以秒为单位) 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;
答案 0 :(得分:1)
afaik alfresco.lag = 1000意味着Solr Tracker将尝试索引至少一秒前已提交的所有交易。 我想设置为0可能会产生一些副作用,例如如果您的SOLR在不同的机器上运行&时间服务不是100%同步。