1

マルチコアをセットアップしたり、サーブレットコンテナを再起動したりせずに、 Solr構成をリロードすることは可能ですか?

管理者の分析タブでいくつかの<analyzer>チェーンを微調整し、<requestHandler>のパラメーターを微調整したいのですが、schema.xmlまたはsolrconfig.xmlに小さな変更を加えるたびにサーブレットコンテナーを再起動する必要があります。苦痛と時間がかかります。

4

2 に答える 2

3

SOLRには常にコアがあります。デフォルトでは、SOLRインスタンスはcollection1という名前のコアを作成します。単一のコアがあり、実行時にリロードする方法がわからない場合は、これを使用できます。

http://localhost:8080/solr/admin/cores?action=RELOAD&core=collection1
于 2013-05-09T19:40:16.190 に答える
1

私が知る限り、オンラインでのリロードにはマルチコア構成が必要ですが、それほど難しくはありません。

これsolr.xmlをsolrホームディレクトリに入れます

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

サーブレットコンテナを再起動します。

次のようなURLをヒットして、構成を再読み込みします。

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
于 2012-12-04T22:41:48.023 に答える