设为首页 收藏本站
查看: 5204|回复: 0

[经验分享] solr(三)---多core配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-11 09:59:03 | 显示全部楼层 |阅读模式
一、为何使用多core?
    Solr实例支持多core比启用多index要好(do more)。多core同时解决了在生产环境下的一些关键需求:
        1.重建索引
        2.测试配置变更
        3.合并索引
        4.运行时重命名core
    Solr Multicore 是 solr 1.3 的新特性。其目的一个solr实例,可以有多个搜索应用。
    我们既可以把不同类型的数据放到同一index中,也可以使用分开的多indexes。基于这一点,你只需知道如何使用多 indexes(实际上就是运行Solr的多实例)。尽管如此,为每一个类型添加一个完整的Solr实例会显得太臃肿庞大。
    Solr1.3引入了Solr core的概念,该方案使用一个Solr实例管理多个indexes,这样就有热点core(hot core)的重读(reloading)与交换(swap,通常是读index与写index交换),那么管理一个 core或index也容易些。每个Solr core由它自己的配置文件和索引数据组成。在多core执行搜索和索引几乎和没有使用core一样。你只是添加core的名字为各自不同的URL。单core情况下的如下搜索:
    http://localhost:8080/solr/select?q=dave%20matthews
在多core环境下,你可以通过如下方式访问一个名为core1的core:
    localhost:8080/solr/core1/select?q=name:Extreme
   并非在URL中引入core name的参数名值对,而是用不同的context。这样就可以像在单core中执行你的管理任务,搜索,更新操作。
二、多core的配置
    2.1、在主目录创建core相关文件和文件夹
    在example目录下有一个multicore的文件夹(笔者的路径是F:solrsolr-4.7.2examplemulticore)。这里配置了两个core,分别是core0和core1。把这两个文件夹复制进主目录中。因为主目录中本来有了默认的core(collection1),所以现在将有三个core同时存在。
    wKiom1RfFUPQeKQGAAEcEvdmyJc044.jpg
    2.2、修改solr.xml
    包含三个core的solr.xml如下所示:


包含三个core的solr.xml如下所示:

   
<solr persistent="true" sharedLib="lib">
<property name="snapshooter" value="/home/solr-user/solr/bin/snapshooter.sh" />
  <!--
  adminPath: RequestHandler path to manage cores.  
    If 'null' (or absent), cores will not be manageable via request handler
  -->
  <cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:8983}" hostContext="${hostContext:solr}">
    <core name="collection1" instanceDir="collection1">
  <property name="dataDir" value="E:\solr-tomcat\solr\data\collection1" />
</core>
<core name="core0" instanceDir="core0">
  <property name="dataDir" value="E:\solr-tomcat\solr\data\core0" />
</core>
<core name="core1" instanceDir="core1">
  <property name="dataDir" value="E:\solr-tomcat\solr\data\core1" />
</core>
  </cores>
  
     
    <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory">
      <str name="urlScheme">${urlScheme:}</str>
    </shardHandlerFactory>
         
</solr>

    我们对比下当只有默认的一个core时的文件:

   
<solr>
  <solrcloud>
    <str name="host">${host:}</str>
    <int name="hostPort">${jetty.port:8983}</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
  </solrcloud>
  <shardHandlerFactory name="shardHandlerFactory"
    class="HttpShardHandlerFactory">
    <int name="socketTimeout">${socketTimeout:0}</int>
    <int name="connTimeout">${connTimeout:0}</int>
  </shardHandlerFactory>
</solr>

    原始的solr.xml文件并没有对core的单独配置(因为都是默认的路劲)。而多core的配置文件则需要对core进行基本配置,主要包含“name”(core的名字)、“instanceDir”(在主目录下的相对路径)、“confDir”(配置文件的目录路径,即conf目录,默认是core下的conf目录)、“dataDir”(数据文件的目录路径,即data目录,默认是core下的data目录)等。
    一些关键的配置值是:
      A)、Persistent="false"指明运行时的任何修改我们不做保存。如拷贝。如果你想保存从启动起的一些改动,那就把 persistent设置为true。如果你的index策略是完成建index到一个纯净的core中然后交换到活动core 那么你绝对应该设为true。
      B)、sharedLib="lib"指明了所有core的jar文件的lib目录。如果你有一个core有自己需要的jar文件,那么你可以把他们置入到core/lib目录。例如:karaoke core 使用 Solr Cell来索引化富文本内容,因此那些用来解析和抽取富文本的jar文件被放到./examples/cores/karaoke/lib/.
    2.3、运行
    如果上面的配置都正常的话,基本的配置都ok了!那我们重启tomcat,打开admin界面。
    wKiom1RgInaAWvJxAAHsxzGNb3k923.jpg
    从“Core Selection”上可以看到我们已经配置好的三个core。而对他们的操作在《solr(二)---基本使用》已经介绍过了。如果不太清楚的,可以去看看笔者的这篇博文。
    多个core的配置已经好了,我们就可以根据不同的需求、对不同的core进行不同的配置、实现不同目的的搜索了!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-27682-1-1.html 上篇帖子: solr(二)---基本使用 下篇帖子: solr(四)---将MYSQL数据库做成索引数据源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表