Lucene 4.0.0时间范围搜索

Lucene 4.0.0时间范围搜索,lucene,date-range,Lucene,Date Range,我们在Lucene 4.0.0中遇到了与时间范围搜索/筛选相关的问题。我们已经为一些tweet建立了索引,现在我们想收集特定用户在特定时间范围内发送的tweet。当我们使用创建的过滤器运行相关查询时,我们会获得超出指定时间范围的tweet。例如,在下面的示例中,我们不希望出现“exp tweet”,因为它的时间戳小于lowerBound 关于如何执行这项任务,或者代码中存在哪些问题,您能给我们一些建议吗 问候 相关代码 你只想得到tweets的时间戳在upperBoundStr和lowerBou

我们在Lucene 4.0.0中遇到了与时间范围搜索/筛选相关的问题。我们已经为一些tweet建立了索引,现在我们想收集特定用户在特定时间范围内发送的tweet。当我们使用创建的过滤器运行相关查询时,我们会获得超出指定时间范围的tweet。例如,在下面的示例中,我们不希望出现“exp tweet”,因为它的时间戳小于lowerBound

关于如何执行这项任务,或者代码中存在哪些问题,您能给我们一些建议吗

问候

相关代码
你只想得到tweets的时间戳在
upperBoundStr
lowerBoundStr
之间?如果是这样,您应该更改
Filter chainFilter=new ChainedFilter(filters,ChainedFilter.OR)
to
Filter chainFilter=新的ChainedFilter(filters,ChainedFilter.AND)。因为
意味着大于
lowerBoundStr的时间戳和小于
upperBoundStr的时间戳都将被放入搜索结果中。

我想得到时间戳大于tweetTimeStr和小于tweetTimeStr的推文,但不是有tweetTimeStr的推文。我认为在这种情况下,逻辑是正确的。即使我使用AND逻辑,它也不能解决我的问题,而且我仍然会收到超出范围的tweet(例如小于lowerBoundStr)。看起来代码运行良好。问题与我如何打印结果有关。很抱歉给您带来不便。
// time range, format "yyyyMMddHHmmss"
String upperBoundStr = 20110126024422;
String lowerBoundStr = 20110126021422;
String tweetTimeStr = 20110126022922;

//create filter
Filter lowerFilter = new QueryWrapperFilter( TermRangeQuery.newStringRange("creationTime",lowerBoundStr,tweetTimeStr,true,false));      
Filter upperFilter = new QueryWrapperFilter( TermRangeQuery.newStringRange("creationTime",tweetTimeStr,upperBoundStr,false,true));
Filter[] filters = new Filter[2];
filters[0] = lowerFilter;
filters[1] = upperFilter;
Filter chainFilter = new ChainedFilter(filters, ChainedFilter.OR);

// search
Query luceneQuery = new TermQuery(new Term("username", "userName1"));
SimpleFSDirectory index = new SimpleFSDirectory(new File("lucene_index"));
IndexReader reader = DirectoryReader.open(index);
IndexSearcher searcher = new IndexSearcher(reader);
ScoreDoc[] hits = searchFilteredQuery(luceneQuery, searcher,chainFilter,maxNumberOfNewTweets);
List<RankResult> filteredtweets = convertHitsToRankResults(hits, searcher);
base tweet: Wed Jan 26 02:29:22 VET 2011 20110126022922 userName1
exp tweet: Tue Jan 25 20:05:02 VET 2011 20110125200502 userName1