2017-01-26 12 views
0

Я использую Solr 6. У меня есть поток данных (диапазоны дат) для определенного идентификатора. Я хочу видеть только пробелы (даты) в них. Пример: Вот что у меня естьЗапрос даты Solr, чтобы найти пробелы (интервалы)

{"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

вы не собираетесь получить эту функцию из Solr. Я вижу несколько вариантов:

  1. просто сделайте это на стороне клиента. Наверное, самый простой и простой.
  2. Вы можете написать обычай QueryResponseWriter, который возвращает документы так, как вам нужно. Но я не уверен, что это возможно, так как вы не хотите форматировать свои документы по-разному, вам нужно создать новые документы из возвращаемых Solr. Тебе придется попробовать.
  3. также вы можете попробовать Streaming Expressions, вы также можете подключить свой собственный Java-код.

    Но я вижу, 2 и 3, как много, гораздо больше работы, чем 1.