【问题标题】:Reload Solr configuration without multicore在没有多核的情况下重新加载 Solr 配置
【发布时间】:2012-12-04 22:11:51
【问题描述】:

是否可以在不设置多核或重新启动 servlet 容器的情况下 reload Solr configuration

我想在管理中使用分析选项卡调整一些 链,并将参数调整到我的 ,但是在对 schema.xml 或 solrconfig.xml 进行每次小的更改后都必须重新启动 servlet 容器有点痛苦和耗时。

【问题讨论】:

    标签: solr lucene reload multicore core


    【解决方案1】:

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

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

    【讨论】:

    • 如果您想查看可用于管理 SOLR 核心的各种命令,请查看SOLR Commands 上的此博客文章。
    【解决方案2】:

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

    把这个solr.xml放到solr主目录

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

    重新启动 servlet 容器。

    点击这样的 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-15
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 2018-07-07
      • 1970-01-01
      相关资源
      最近更新 更多