如何知道何时完成Solr Optimize?

时间:2010-09-17 10:29:28

标签: java php html database solr

我正在使用Solr-php-client通过php与Solr进行通信。

这段代码触发了solr optimize命令:

  $solr->optimize();

我想知道是否有任何方法可以确定优化已完成?

这都是因为我在我的网站上有一个管理页面,我每天手动一次必须优化Solr索引,但我写这段代码有困难。

目前我有一个带有提交按钮的简单表单,它触发optimize()命令,但我必须以某种方式确认已经发生了优化,这就是问题所在。

您知道在Solr中确认优化的任何方法吗?

由于

2 个答案:

答案 0 :(得分:3)

Optimize命令的documentation指定默认情况下,命令将阻塞,直到所有更改都写入磁盘并且新搜索器可用。因此,如果保留这些默认值,则在命令返回时,您可以考虑优化完成。请注意,根据您当前拥有的段数以及要删除的段数,该命令可能会阻塞很长时间。我看到优化需要一个小时才能完成。

答案 1 :(得分:2)

最简单的方法是从Solr控制台开始优化,在集合的“概述”部分中有一个“立即优化”按钮。如果刷新此屏幕,您将看到使用的内存不断增长,直到它加倍,然后勾选优化状态并且“立即优化”按钮消失。

注意:您必须有足够的可用磁盘空间来完成优化,否则它将失败,恕不另行通知或错误消息。

这并不直接回答你的问题,但这是处理solr实例选择的另一种方法。所以我希望它会有所帮助。