solr时间类型比较(数据库存储的是varchar,并不是字符串)

数据库是oracle,create_time是字符类型,无法进行时间比较。
解决办法:第一步,数据库导入到solr时,应该转化为时间类型。
在这里插入图片描述
第二步,定义field的CREATE_DATE为pdate
在这里插入图片描述
这样配置就完成了。
剩下是正常的代码。

   //时间查询
        StringBuilder dateQ = new StringBuilder("");
        if(StringUtils.isNotEmpty(startTime)||StringUtils.isNotEmpty(endTime)) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
            dateQ.append(" AND ").append("(").append("CREATE_DATE:[");
            if (StringUtils.isNotEmpty(startTime)) {
                Date pastDay = DateTimeUtil.format(startTime, "yyyy-MM-dd");
                dateQ.append(sdf.format(pastDay));
            } else {
                Date pastDay = DateTimeUtil.format("2000-01-01", "yyyy-MM-dd");
                dateQ.append(sdf.format(pastDay));
            }
            dateQ.append(" TO ");
            if (StringUtils.isNotEmpty(endTime)) {
                Date pastDay = DateTimeUtil.format(endTime, "yyyy-MM-dd");
                dateQ.append(sdf.format(pastDay));
            } else {
                dateQ.append(sdf.format(new Date()));
            }
            dateQ.append("])");
        }
        //查询条件, 这里的 q 对应 下面图片标红的地方
        params.set("q", q+dateQ.toString());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章