使用lucene的日期范围查询

时间:2015-12-26 19:46:40

标签: java lucene full-text-search hibernate-search date-range

我试图在mssql db的特定日期范围之间获取数据。但什么都不回报。我在stackoverflow上找到了一个解决方案,但它无法正常工作。

这就是我所做的:

这是实体类的日期字段:

 @Basic(optional = false)
@Column(name = "tarih")
@Temporal(TemporalType.TIMESTAMP)
@DateBridge(resolution = Resolution.MILLISECOND)
private Date tarih;

这就是我试图在特定日期之间取得日期的方式:

 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    Calendar cal = Calendar.getInstance();

    Calendar cal2 = new GregorianCalendar();
    cal2.setTime(new Date(114, 12, 15, 3, 4,4));


    System.out.println(dateFormat.format(cal.getTime()));
    System.out.println(dateFormat.format(cal2.getTime()));


    TermRangeQuery luceneRangeDateQuery = newStringRange("tarih", DateTools.dateToString(cal2.getTime(), DateTools.Resolution.MILLISECOND),
     DateTools.dateToString(cal.getTime(), DateTools.Resolution.MILLISECOND), true, true);
    org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery(luceneRangeDateQuery);


    List<Satislar> kayitliSatislar = fullTextQuery.list();

这是db记录,类型是datetime:

This is db record and it is type is datetime:

这是输出这两行和查询发送的:

    System.out.println(dateFormat.format(cal.getTime()));
    System.out.println(dateFormat.format(cal2.getTime()));

enter image description here

0 个答案:

没有答案