如何从shell交换solr核心

时间:2014-01-17 11:26:09

标签: solr4

我有两个内核的solr设置。我想安排一个核心(core1,后端)经常进行完全导入(例如每5分钟后),然后通过一个shceduler从shell命令交换live(core0,serve)核心。

对于完全导入命令,我使用以下shell命令

wget -o - -q -t 1 http://localhost:8080/solr/core1/dataimport?command=full-import

哪个工作正常。如果我通过点击
来从浏览器进行核心交换 http://localhost:8080/solr/admin/cores?action=SWAP&core=core1&other=core0,我在搜索时立即获得最新更新。但是,如果我将此URL安排为类似于dataimport的shell命令,则不执行该交换。

2 个答案:

答案 0 :(得分:1)

你试过

吗?
  

卷曲   的 “http:// '本地主机':8080 / solr的/管理/芯动作= SWAP&安培;核心=核心-1&安培;其他= CORE0”

来自shell?

答案 1 :(得分:0)

有SWAPs的抓地力

Apache Solr允许交换两个核心用于非云配置。它们采用彼此的名字,因此这是一种在不停机的情况下将更新的核心推送到生产中的好方法。

但一个有趣的问题是如何实现这一目标。通常,核心名称也是它的目录名称。那么,Solr是否也重命名了文件系统上的目录?

不是真的!而是更新core.properties文件中的name属性以使用其他核心的名称。通常,该属性用于在目录命名约定不适合时为核心提供交替路径名称。

当然,问题在于您仍然有两个目录,其中包含您在管理界面中看到的核心的正确名称。因此,在对其他人进行故障排除时甚至是您自己的旧设置时,很容易忘记额外的重定向/重命名步骤。