Solr 7.7.1迁移至8.11.2遇Schema问题:字段添加Solr异常
问题原因与解决办法
核心原因
solr.IntPointField仅支持整数类型值,无法解析带小数点的字符串(比如"40000.0")。- 你的
luceneMatchVersion配置停留在6.6.5,而Solr 8.x对应Lucene 8.x版本,旧版本的字段处理逻辑和新版本不兼容,会放大类型解析的问题。
具体修复步骤
- 更新字段类型
- 如果price字段实际需要存储带小数的数值,直接把字段类型改成
solr.DoublePointField,即可兼容带小数点的数值字符串。 - 如果price只需要整数,要么在导入前把数据里的".0"后缀去掉(比如在数据预处理环节把"40000.0"转为"40000"),要么给
solr.IntPointField添加过滤规则自动处理:<fieldType name="int" class="solr.IntPointField"> <analyzer> <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.PatternReplaceFilterFactory" pattern="\.0$" replacement="" replace="all"/> </analyzer> </fieldType>
- 如果price字段实际需要存储带小数的数值,直接把字段类型改成
- 升级luceneMatchVersion
- 把
solrconfig.xml里的<luceneMatchVersion>值改成8.11.2(和当前Solr版本保持一致),让Solr使用对应版本的Lucene处理逻辑,避免旧版本兼容性问题。
- 把
- 重启验证
- 修改配置后重启Solr服务,重新执行数据导入,检查是否还存在报错。
内容的提问来源于stack exchange,提问作者merlin
相关产品推荐
相关产品推荐

