当前位置:编程学习 > C#/ASP.NET >>

.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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,