數據庫是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());