solr / lucene:查询最近的日期

时间:2017-02-09 10:26:34

标签: solr lucene

我需要在solr中执行一个查询,该查询返回最接近给定时间戳的文档。让我们说这些是我的文件:

[{
  myDateField_dt: "2012-12-01T18:37:35.282Z"
},
{
  myDateField_dt: "2012-12-01T18:37:38.282Z"
},
{
  myDateField_dt: "2012-12-01T18:37:40.282Z"
}]

这是我的搜索日期:2012-12-01T18:37:36.282Z

然后查询应该从我的示例文档返回第一个日期,因为它最接近我的搜索日期。我如何使用solr / lucene进行此操作?

1 个答案:

答案 0 :(得分:1)

您使用function queries进行日期数学运算,并按您构建的公式对查询进行排序。一个可能的(未经测试的)候选人:

&sort=ms(2012-12-01T18:37:36.282Z, myDateField_dt) asc

特别有用的是ms(),if()等函数。检查日期数学here

请注意在日期字段中处理缺失值。