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

当使用Solr Data Import Handler创建索引时,MySQL的tinyint字段会被转换为boolean。为保持数字类型,可以在SQL查询中使用CONVERT()函数进行转换,如SELECT id, CONVERT(with_costs, SIGNED) as with_costs FROM table_a。转换类型有限制,包括BINARY、CHAR()、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED等。"
109976969,10296638,机器学习在脑电病理诊断中的应用比较,"['机器学习', '深度学习', '脑电图分析', '病理诊断', '特征工程']
716

被折叠的 条评论
为什么被折叠?



