首先,4.0版本以上必须要jdk1.6以上版本支持。
1、在4.6版本中,solrconfig.xml中的infoStream配置被删除了。
这个配置主要是将indexWriter执行的调试信息输出到指定文本中。
<infoStream file="INFOSTREAM.txt">false</infoStream>
现在通过使用你的日志配置(org.apache.solr.update.LoggingInfoStream)来带替。
2、在4.5版本时,xml的配置文件解析更严格,
3、在4.3版本开始,不在包含slf4j/logging jar包,允许更灵活的使用其它任何log包。
4、从5.0版本开始,solr.xml中传统的格式将不被支持,看起来像是这样:
<solr>
<solrcloud>
<str name="host">${host:}</str>
<int name="hostPort">${jetty.port:8983}</int>
<str name="hostContext">${hostContext:solr}</str>
<int name="zkClientTimeout">${zkClientTimeout:15000}</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>
5、在4.4版本中,ByteField和ShortField被弃用,将来5.0版本中会被删除。请使用TrieIntField代替。包括
SortableIntField -->IntField 或 TrieIntFile
SortableDoubleField -->DoubleField 或 TrieDoubleField
SortableFloatField --> FloatField 或 TrieFloatField
SortableLongField --> LongField 或 TrieLongField
在schema.xml中删除以下旧的配置:
<fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true" omitNorms="true"/>
6、从4.4版本开始,对复合文件格式的使用是由IndexWriter直接设置,而不在是由合并策略<mergePolicy>来设置。
设置 UseCompoundFile 为 true 时,solr 会将数据索引到一个索引文件中。有的操作系统有限制一个线程打开文件的数量,设置这个值为 true 时,可以避免达到这个文件数量限制。
这个设置也将影响索引复制时需要传输的数据量。使用更少的格式文件,是以性能下降为条件的。
如果在solrconfig.xml中你有明确的配置<mergePolicy>和<setUseCompoundFile>选项,你应该删除在<indexConfig>块中直接配置useCompoundFile的选项。
在solr5.0时,setUseCompoundFile选项将不起作用。
7、在4.5版本中,CloudSolrServer默认可使用多线程进行添加索引文档,
8、在4.x版本中,
solr.JsonUpdateRequestHandler
solr.CSVRequestHandler
solr.BinaryUpdateRequestHandler
solr.XmlUpdateRequestHandler
solr.XsltUpdateRequestHandler
都已被弃用,可以直接使用solr.UpdateRequestHandler代替。
9、更新最新的所有jar包
10、elevate.xml关于竞价排名的问题
启动报错:Caused by: org.apache.solr.common.SolrException: Invalid Number: MA147LL/A
主要是elevate.xml文档的问题,如果schema.xml中你定义的id字段类型是整型,就会报这个错,把id="MA147LL/A"的修改成数字就行了。
11、solrconfig.xml修改版本号
<luceneMatchVersion>4.6</luceneMatchVersion>
删除JsonUpdateRequestHandler和CSVRequestHandler的配置
12、schema.xm添加
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="_root_" type="string" indexed="true" stored="false"/>