2015-08-19 4 views
0

Я пытаюсь понять фильтры диапазона дат в RavenDB. При попытке запросить для записей в пределах определенного диапазона дат следующим образом:Включить запрос диапазона дат RavenDB, не считая ожидаемых значений даты, как ожидалось

Date:[2015-08-18T06:00:00.000Z TO 2015-08-19T06:00:00.000Z] 

Вид документа выполняется запрос содержит следующую запись (который я ожидал, чтобы быть возвращен выше запросом).

{ 
    "yada_yada": "stuff", 
    "Date": "2015-08-18T06:00:00Z", 
    "Source": "Joe Bob", 
    "Comments": "The force is strong with this one.", 
    "Id": "agentactivities-1" 
} 

Запрос не дал результатов. Я попытался изменить запрос, такой как Date:[2015-08-18T06:00:00Z TO 2015-08-19T06:00:00.000Z] (удаление десятичного значения) с тем же результатом. Однако, если я удалю Z (Дата: [2015-08-18T06: 00: 00.000 до 2015-08-19T06: 00: 00.000Z]), запись возвращается по запросу. Кроме того, изменение рабочего диапазона arg на час раньше, похоже, также работает (Date:[2015-08-18T05:00:00.000Z TO 2015-08-19T06:00:00.000Z])

Что мне здесь не хватает? Насколько я понимаю, использование символов [] должно приводить к включению диапазона, поэтому почему запрос не возвращает эту запись ???

ответ

1

Проблема в том, что ваша дата в документе не является допустимым значением даты. Это должно быть с датой даты ISO 8601.

Это формат:

"YYYY-MM-DDThh: мм: ss.fffffffzzz"

+0

Спасибо за ответ. Вы правы, изменяя формат даты на _both_ документе, и запрос, чтобы нести 7 десятичных значений, «исправить» проблему с результатами. Однако кажется, что существует более глубокая проблема сравнения значений дат, которые, я полагаю, являются деталями реализации Lucene.NET. Основываясь на ваших знаниях Lucene (.NET), знаете ли вы, можно ли рассмотреть PR, чтобы улучшить сравнение значений даты, так что «2015-08-18T05: 00: 00.000Z == 2015-08-18T05: 00 : 00.0000000Z'? –

+0

Если вы отправите PR, мы обязательно рассмотрим его –

+0

Я с удовольствием рассмотрю его. Правильно ли я полагаю, что это деталь реализации Lucene.Net, или я должен смотреть на RavenDB? Я не знаком с внутренними структурами обеих библиотек, поэтому любые советы, которые вы можете предоставить, чтобы помочь мне приехать, будут очень признательны. –