Solr3.6中DIH将tinyint类型数据转化为boolean(布尔值)bug解决方案

apache-solr-3.6.2使用DIH(Data Import Handler)生成索引时,默认会把MySQL数据中的tinyint类型的数据转换成boolean(布尔值类型:true,false)类型。
这样导致数据失去原有数值表达的含义,建立的solr索引的也没法使用。

解决方法
1、更改数据表,将tinyint类型转化为int类型。(不推荐)

2、在DIH获取MySQL数据集通过sql查询时进行类型转换,将查询结果中tinyint类型转换为int类型。
MySQL中使用CONVERT(表达式,类型)函数进行类型转换。

SELECT CONVERT(ReportDetail.Type, SIGNED) as Type , CONVERT(ReportDetail.Level,SIGNED) as Level FROM ReportDetail

3、升级Solr,使用较新的Solr稳定版本,新版本已经解决了这个bug,如Solr-4.5。

此条目发表在web分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据