java集成ES脚本
简介
外包到阿里云旗下“时时同云”的第一次工作总结
关于java集成ES脚本
第一次接触ES脚本,查询了中文文档以及各种百度资料,确认了ES脚本的执行顺序,以及脚本的简单逻辑。
- 新增时间区间的检索
使用range可以进行一次范围判断。
range可以单独一句判断,或者链接多个判断。
等同于{"range":{"upgradeTime":{ "gte":${beMemberStartDate}, "lte":${beMemberEndDate} }}}
,{"range":{"upgradeTime":{"gte":${beMemberStartDate}}}} ,{"range":{"upgradeTime":{"lte":${beMemberEndDate}}}}
-
错误记录
在本次迭代修改中,出现了以下情况。* 真实数据 9月16日一个用户升级为会员。 9月21日一个会员升级为会员。 * 查询结果 9月1日——9月15日成为会员的用户数量为0(正确) 9月16日——9月16日成为会员的数量为1(正确) 9月17日——9月20日成为会员的数量为1(错误) 9月21日——9月21日成为会员的数量为2(错误) * 个人判断 开始时间正确,结束时间错误。期间多次修改脚本中的范围判断。gte、gt、lte、le的各种应用。 * 检查错误 java传递到ES脚本的参数名出现了错误,导致开始时间失效,只能确定结束时间。 查找BUG总共耗时接近一个星期。
3.错误总结
- 过于急躁,不去验证结论
- 在查询结果中不难看出,假如是开始时间生效,结束时间失效,出现的结果应该是9月两条数据都应该查询出来。
- 在不熟悉项目结构的同时,还不请教老员工,脸皮太薄