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());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章