solr对mysql中tinyint字段的处理方法

当使用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,机器学习在脑电病理诊断中的应用比较,"['机器学习', '深度学习', '脑电图分析', '病理诊断', '特征工程']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用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版本上测试,问题依旧
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值