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/下载
原创粉丝点击