重新加载没有多核的Solr配置

时间:2012-12-04 22:11:51

标签: solr lucene reload multicore core

如果没有设置多核或重新启动servlet容器,是否可以reload Solr configuration

我想调整一些&lt; analyzer&gt;使用admin中的分析选项卡进行链接,并将参数调整到我的&lt; requestHandler&gt;,但是在对schema.xml或solrconfig.xml进行每次小的更改后都必须重新启动servlet容器,这有点费时费力。< / p>

2 个答案:

答案 0 :(得分:3)

SOLR中总有一个核心。默认情况下,SOLR实例会创建名为 collection1 的核心。如果你有一个核心并且不确定如何在运行时重新加载,你可以使用它,

http://localhost:8080/solr/admin/cores?action=RELOAD&core=collection1

答案 1 :(得分:1)

据我所知,在线重新加载需要多核配置,事实证明这并不太难:

将此solr.xml放入solr主目录

<solr persistent="false" sharedLib="lib">
  <cores adminPath="/admin/cores" defaultCoreName="core0">
    <core name="core0" instanceDir="." />
  </cores>
</solr>

重新启动servlet容器。

点击这样的网址重新加载配置:

http://localhost:8983/solr/admin/cores?action=RELOAD&core=core0

要消除其余的摩擦,您可以将其设置为通过在conf目录中运行以下脚本来自动重新加载配置。

get_on_fsevent.rb "http://localhost:8983/solr/admin/cores?action=RELOAD&core=core0"

get_on_fsevent.rb:

#!/usr/bin/env ruby
require 'rubygems'
require 'rb-fsevent'
require 'net/http'
require 'uri'

uri = URI.parse(ARGV.first)

fsevent = FSEvent.new
fsevent.watch Dir.pwd do |directories|
  puts "Detected change. Requesting #{ARGV.first}"
  puts Net::HTTP.get_response(uri)
end
fsevent.run