solr map函数的坑
来源:互联网 发布:手机域名注册查询 编辑:程序博客网 时间:2024/06/13 12:25
在solr中有很很多的函数查询,比如 sum,product,div等等,这里主要跟大家讲下这个map以及我在使用过程中遇到的一个坑。
在solr查询中我相信大家一定会碰到一个动态加权排序的问题,这时候map其实是一个很好的选择。map函数的原型如下:
1.map,如果 min<=x<=max,那么map(x,min,max,target)=target,如果 x不在[min,max]这个区间内,那么map(x,min,max,target)=x.
2.map,如果 min<=x<=max,那么map(x,min,max,target,other)=target,如果 x不在[min,max]这个区间内,那么map(x,min,max,target,other)=other.
map有上面两种方式,我这里主要就是用这个map做了一个商品的分类动态加权分。
刚开始时分类很少并没有出现什么问题。但是随着系统的发展,分类Id很大,大约到了209999999这样的值,这时候我发现用map时并没有出现加权的效果,当时纠结了我很久,最后还是查到了问题。大家在用这个map时很多人以为 min 和 max是int型,其实在solr里面它是一个float型,使用debugQuery时你就可以看出。然后问题来了,当我们的数值很大的时候 使用这个float就会出现整数位和精度丢失的问题,比如
Float float1 = Float.parseFloat("200999999");
System.out.println(float1);
大家运行下就可以知道了。
其实我也有点没想通solr为啥要使用float而不是double,如果使用double 的话就不会出现这个问题。
- solr map函数的坑
- solr函数
- solr 的修改操作二:通过map集合进行操作
- solr 的坑
- perl的map函数
- perl的map函数
- perl的map函数
- perl的map函数
- map函数的应用
- map函数的应用
- map函数的使用
- python的map函数
- Solr的函数查询Function Queries
- Solr 踩过的坑
- map函数的基本操作
- Python map()函数的用法
- Two Sum 的map函数
- map函数的简单用法。
- 快速排序。冒泡排序递归和非递归的实现
- 浅谈C++多态&多态对象模型
- 非局部均值滤波原理 Non-local means filter 【从零起步完全教程】
- Oracle创建用户、表空间、导入导出等
- CentOS Mysql-5.7.19免安装版配置(可安装多个)
- solr map函数的坑
- 我的栈和队列
- opencv 函数备忘
- 变量,数据类型及转换
- [LeetCode] 542. 01 Matrix
- [UML]类之间的关系
- Android酷炫实用的开源框架(UI框架)
- iOS-Core-Animation-Advanced-Techniques笔记
- 将一颗搜索树转换成一个排序的双向链表。要求不能创建任何新的节点