solr对mysql中tinyint字段的处理方法,例如把1变成true

在使用DIH(Data Import Handler)创建索引时,mysql中的tinyint类型的字段会被转换为java的boolean类型,值为true、false,很多情况下这是不符合要求的。如果要保持数字类型,需要在sql语句中转换
例如:
select id,convert(catid,SIGNED) as catid from table_a;
解释:
convert()函数可以完成数据类型的转换,with_costs是要转换的字段名,tinyint类型,SIGNED是要转换的目标类型,这里记得写上as XXX即字段的新别名,经测试不写as XXX转换无效。
注:可以转换的类型是有限制的。这个类型可以是以下值其中的一个:
    二进制,同带binary前缀的效果 : BINARY
    字符型,可带参数 : CHAR()
    日期 : DATE
    时间: TIME
    日期时间型 : DATETIME
    浮点数 : DECIMAL
    整数 : SIGNED     
    无符号整数 : UNSIGNED
另外,这个问题在5.1版本上测试,问题依旧。

发表评论

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