“Solr4.0升级参考”的版本间的差异

来自Dennis的知识库
跳转到: 导航搜索
配置变更
配置变更
第16行: 第16行:
 
== 配置变更 ==
 
== 配置变更 ==
  
* schema.xml  必须加入_version_字段:
+
=== schema.xml ===
 +
 
 +
schema.xml  必须加入_version_字段:
  
 
     <field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>
 
     <field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>
* solrconfig.xml
+
=== solrconfig.xml ===
** indexDefaults和mainIndex合并成indexConfig
+
* indexDefaults和mainIndex合并成indexConfig
** 必须加入
+
* 必须加入
  
 
     <luceneMatchVersion>LUCENE_CURRENT</luceneMatchVersion>
 
     <luceneMatchVersion>LUCENE_CURRENT</luceneMatchVersion>
第27行: 第29行:
 
选择你使用的lucene版本号。
 
选择你使用的lucene版本号。
  
** updateHandler必须加入updateLog,用于生成事务日志
+
* updateHandler必须加入updateLog,用于生成事务日志
 
       <updateLog>
 
       <updateLog>
 
       <str name="dir">${solr.data.dir:}</str>
 
       <str name="dir">${solr.data.dir:}</str>
 
       </updateLog>
 
       </updateLog>
** 原来用于复制的replicationHandler可以简化成:
+
* 原来用于复制的replicationHandler可以简化成:
 
       <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
 
       <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
** 添加/get handler:
+
* 添加/get handler:
 
       <requestHandler name="/get" class="solr.RealTimeGetHandler">
 
       <requestHandler name="/get" class="solr.RealTimeGetHandler">
 
           <lst name="defaults">
 
           <lst name="defaults">
第40行: 第42行:
 
       </requestHandler>
 
       </requestHandler>
  
** 如果没有添加admin handler,必须添加:
+
* 如果没有添加admin handler,必须添加:
  
 
       <requestHandler name="/admin/" class="solr.admin.AdminHandlers" />
 
       <requestHandler name="/admin/" class="solr.admin.AdminHandlers" />
第48行: 第50行:
 
       <cores adminPath="/admin/cores"
 
       <cores adminPath="/admin/cores"
  
** [http://wiki.apache.org/solr/DistributedUpdateProcessor DistributedUpdateProcessor]会自动添加到update链里,但是你也可以手动添加:
+
* [http://wiki.apache.org/solr/DistributedUpdateProcessor DistributedUpdateProcessor]会自动添加到update链里,但是你也可以手动添加:
 
      
 
      
 
     <updateRequestProcessorChain name="sample">
 
     <updateRequestProcessorChain name="sample">
第57行: 第59行:
 
     </updateRequestProcessorChain>
 
     </updateRequestProcessorChain>
  
** solr.DisMaxRequestHandler相关handler需要删除。
+
* solr.DisMaxRequestHandler相关handler需要删除。
** solr.AnalysisRequestHandler相关handler需要删除。
+
* solr.AnalysisRequestHandler相关handler需要删除。

2012年12月3日 (一) 05:43的版本

目录

介绍

最近负责solr集群的升级,从solr 3.x的一个shard集群升级到solr 4.0的cloud集群。

Why

Solr 4.0引入了SolrCloud功能,利用zookeeper做到全自动的分区、负载均衡,无需再人工做痛苦的shard切分,也不需要利用Haproxy或者Nginx做前端的负载均衡。这是我们升级的主要动力。Solr 4.0还有一个NRT,近实时搜索的特性也是我们比较关注的。

2shard4serverFull.jpg

整个升级主要参考SolrCloud这篇文档。


配置变更

=== schema.xml ===

schema.xml 必须加入_version_字段:

   <field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>

solrconfig.xml

  • indexDefaults和mainIndex合并成indexConfig
  • 必须加入
   <luceneMatchVersion>LUCENE_CURRENT</luceneMatchVersion>

选择你使用的lucene版本号。

  • updateHandler必须加入updateLog,用于生成事务日志
     <updateLog>
     <str name="dir">${solr.data.dir:}</str>
     </updateLog>
  • 原来用于复制的replicationHandler可以简化成:
     <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
  • 添加/get handler:
     <requestHandler name="/get" class="solr.RealTimeGetHandler">
         <lst name="defaults">
           <str name="omitHeader">true</str>
         </lst>
      </requestHandler>
  • 如果没有添加admin handler,必须添加:
     <requestHandler name="/admin/" class="solr.admin.AdminHandlers" />

solr.xml保持默认:

      <cores adminPath="/admin/cores"
   <updateRequestProcessorChain name="sample">
    <processor class="solr.LogUpdateProcessorFactory" />
    <processor class="solr.DistributedUpdateProcessorFactory"/>
    <processor class="my.package.UpdateFactory"/>
    <processor class="solr.RunUpdateProcessorFactory" />
   </updateRequestProcessorChain>
  • solr.DisMaxRequestHandler相关handler需要删除。
  • solr.AnalysisRequestHandler相关handler需要删除。
个人工具
名字空间

变换
操作
导航
工具箱