.net中用lucene做日期范围内的查询
我开始做成按照关键字查询没有问题,现在我按时间范围查询,结果没有查到数据。请看我写入索引和查询的步骤,先是把日期字段写入索引,写入时转换为20070613字符型。
doc.Add(Field.Keyword("dat",DateTime.Parse(mydr[11].ToString()).ToString("yyyyMMdd"))); //读出索引的此易做图是为20070613的格式。
下面是查询的代码,首先对查询的时间段进行过滤(按时间范围查询)
Term beginTime = new Term("dat",stratDate); //stratDate已转换为20070613格式,字符型。
Term endTime = new Term("dat",endDate);
RangeQuery querybetween = new RangeQuery(begintime, endtime, true);
然后对对关键词进行过滤(按关键词查询)
Query queryfield = QueryParser.parse(title,keyword, new StandardAnalyzer());
最后把所有的条件组合起来
BooleanQuery query = new BooleanQuery();
query.add(querybetween, true, false);// 必须满足
query.add(queryfield, true, false);// 必须满足
加入排序规则
Hits hits = searcher.search(query);// 开始进行搜索 --------------------编程问答-------------------- SF,看楼下吧,没试过! --------------------编程问答-------------------- 我做的有重复数据,而且数据库中的数据删除之后,增量索引不能把索引文件中的记录删除,全部索引时间太漫长了,等不了!。。。。郁闷中。。。。。。。。。 --------------------编程问答-------------------- 没有人会嘛? --------------------编程问答-------------------- 自己搞定 --------------------编程问答-------------------- 咋搞定的......
补充:.NET技术 , ASP.NET