“Solr4.0升级参考”的版本间的差异
来自Dennis的知识库
Dennis zhuang(讨论 | 贡献) (→配置变更) |
Dennis zhuang(讨论 | 贡献) (→配置变更) |
||
第20行: | 第20行: | ||
<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 |
+ | ** 必须加入 | ||
+ | |||
+ | <luceneMatchVersion>LUCENE_CURRENT</luceneMatchVersion> | ||
+ | |||
+ | 选择你使用的lucene版本号。 | ||
+ | ** updateHandler必须加入updateLog,用于生成事务日志 | ||
<updateLog> | <updateLog> | ||
<str name="dir">${solr.data.dir:}</str> | <str name="dir">${solr.data.dir:}</str> | ||
</updateLog> | </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" | ||
+ | |||
+ | ** [http://wiki.apache.org/solr/DistributedUpdateProcessor DistributedUpdateProcessor]会自动添加到update链里,但是你也可以手动添加: | ||
+ | |||
+ | <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需要删除。 |
2012年12月3日 (一) 05:41的版本
介绍
最近负责solr集群的升级,从solr 3.x的一个shard集群升级到solr 4.0的cloud集群。
Why
Solr 4.0引入了SolrCloud功能,利用zookeeper做到全自动的分区、负载均衡,无需再人工做痛苦的shard切分,也不需要利用Haproxy或者Nginx做前端的负载均衡。这是我们升级的主要动力。Solr 4.0还有一个NRT,近实时搜索的特性也是我们比较关注的。
整个升级主要参考SolrCloud这篇文档。
配置变更
- 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"
- DistributedUpdateProcessor会自动添加到update链里,但是你也可以手动添加:
<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需要删除。