我有一个带文件的lucene索引 - 它们都包含存储DateTime值的字段。提取/最有效的方法来提取具有最高价值的文档。整数值的外观如何?当然我假设使用DateTools.DateToString
或类似的方法将值转换为字符串。
答案 0 :(得分:3)
阐述Jf Beaulac的答案,这样的代码示例可能如下所示。请注意,'CreatedAt'字段用于存储DateTime值。
//providing query that will not filter any documents
var query = new TermRangeQuery("CreatedAt", DateTools.DateToString(DateTime.MinValue, DateTools.Resolution.MINUTE), DateTools.DateToString(DateTime.MaxValue, DateTools.Resolution.MINUTE), false, false);
//providing sorting on 'CreatedAt' and returning just one result
var createdAtSerchResults = searcher.Search(query, null, 1, new Sort(new SortField("CreatedAt", SortField.LONG, true)));
//extracting CreatedAt value from returned document
var documentWithMaxCreatedAt = searcher.Doc(createdAtSerchResults.ScoreDocs.First().Doc);
var result = DateTools.StringToDate(documentWithMaxCreatedAt.Get("CreatedAt"));
答案 1 :(得分:2)