2

由于 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;
4

1 回答 1

1

afaik alfresco.lag=1000 意味着 Solr Tracker 将尝试索引至少一秒钟前已提交的所有事务。我猜设置为 0 可能会产生一些副作用,例如,如果您的 SOLR 在不同的机器上运行并且时间服务不是 100% 同步的。

于 2013-07-12T21:30:52.980 回答