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。