lucene: 格式化值, 用于索引和索引查询条件以及查询结果
来源:互联网 发布:淘宝店铺做什么推广好 编辑:程序博客网 时间:2024/05/25 20:00
import java.util.Date;import org.apache.lucene.document.NumberTools;import org.fto.jthink.util.DateTimeHelper;/** * 格式化值, 用于索引和索引查询条件以及查询结果 * * @author try.jiwen */public class ValueUtils { /** * 格式化日期类型值,在此之所有不用Lucene自带的DateTools处理日期,是因为DateTools转换后的日期有问题。 * * @param value * @param vformat 源值格式,如果是日期类型数据,值格式为标准JAVA中的日期格式串, * 如:yyyyMMddHHmmss,yyyy-MM-dd HH:mm:ss.S, yyyy-MM-dd HH:mm:ss等 * @param idxformat Lucene索引库使用的格式。包括:yyyy,yyyyMM,yyyyMMdd,yyyyMMddHH,yyyyMMddHHmm,yyyyMMddHHmmss,yyyyMMddHHmmssS * @return */ public static String formatDateValue(String value, String vformat, String idxformat){ if(value==null || value.trim().length()==0){ return value; } Date dValue; try{ dValue = DateTimeHelper.parseToDate(value.trim(), vformat); }catch(Exception e){ dValue = DateTimeHelper.parseToDate(value.trim()); } return DateTimeHelper.formatDateTimetoString(dValue, idxformat); } /** * 反格式化日期类型值,在查询。 * * @param value * @param idxformat Lucene索引库使用的格式。包括:yyyy,yyyyMM,yyyyMMdd,yyyyMMddHH,yyyyMMddHHmm,yyyyMMddHHmmss,yyyyMMddHHmmssS * @param vformat 源值格式,如果是日期类型数据,值格式为标准JAVA中的日期格式串, * 如:yyyyMMddHHmmss,yyyy-MM-dd HH:mm:ss.S, yyyy-MM-dd HH:mm:ss等 * @return */ public static String unformatDateValue(String value, String idxformat, String vformat){ if(value==null || value.trim().length()==0){ return value; } Date dValue; try{ dValue = DateTimeHelper.parseToDate(value.trim(), idxformat); }catch(Exception e){ dValue = DateTimeHelper.parseToDate(value.trim()); } return DateTimeHelper.formatDateTimetoString(dValue, vformat); } /** * 格式化数值类型值 * * @param value * @return */ public static String formatNumberValue(String value){ if(value==null || value.trim().length()==0){ return value; } return NumberTools.longToString(Long.parseLong(value.trim())); } /** * 格式化数值类型值 * * @param value * @return */ public static String formatNumberValue(long value){ return NumberTools.longToString(value); } /** * 反格式化数值类型值 * * @param value * @return */ public static long unformatNumberValue(String value){ if(value==null || value.trim().length()==0){ return 0; } return NumberTools.stringToLong(value); } }
此程序依赖JThink-Framework。可到http://cosoft.org.cn/projects/jthink/下载