Solr日期查询以查找间隙(间隔)

时间:2017-01-26 17:28:12

标签: solr solr6

我正在使用Solr 6.我有一个特定id的数据流(日期范围)。我想只看到它们中的空白(日期)。示例:这是我拥有的

{"start":"2016-04-20",
"end":"2016-04-21",      
"file_id":"538b3274"},
{
"start":"2016-04-24",
"end":"2016-04-25",
"file_id":"538b3274"},
{
"start":"2016-04-25",      
"end":"2016-04-26",
"file_id":"538b3274"},
{
"start":"2016-04-29",       
"end":"2016-04-30",
}

这是我想看的东西。示例:

{
missing: [2016-04-22 TO 2016-04-25]         
"file_id":"538b3274"},
{
missing: [2016-04-27 TO 2016-04-28]       
"file_id":"538b3274"},    
}

响应也可以是具有多个日期的一个条目

<pre>{
missing: [2016-04-22 TO 2016-04-23], [2016-04-27 TO 2016-04-28]       
"file_id":"538b3274"},    
}</pre>

1 个答案:

答案 0 :(得分:1)

你不会从Solr中获得这个功能。我看到了几个选项:

  1. 只是在客户端执行此操作。可能是最容易也是最简单的。
  2. 您可以编写一个自定义QueryResponseWriter,以您需要的方式返回文档。但是,我不确定这是否可行,因为您不想以不同方式格式化您的文档,您需要从Solr返回的文档中创建新文档。你必须尝试。
  3. 您也可以尝试Streaming Expressions,也可以在那里插入自定义Java代码。

    但我看到2和3同样多,比1更多的工作。