Мы используем API SolrNet для индексирования и поиска набора документов, который содержит три поля даты: Date1, Date2, Date3. C# класс имеет следующие определения для трех полехОшибка преобразования даты Solrnet
public DateTime? Date1{ get; set; }
public DateTime? Date2{ get; set; }
public DateTime? Date3{ get; set; }
определения схемы Solr выглядит следующим образом:
<field name="Date1" type="date" indexed="false" stored="true" required="false"/>
<field name="Date2" type="date" indexed="false" stored="true" required="false"/>
<field name="Date3" type="date" indexed="false" stored="true" required="false"/>
Когда мы выполняем запрос с документом, который уже проиндексирован, мы получаем следующие значения возвращаются в интерфейсе SolrAdmin:
<date name="Date1">0001-01-01T00:00:00Z</date>
<date name="Date2">2010-04-10T08:21:18.281Z</date>
<date name="Date3">2007-12-01T03:09:41.093Z</date>
Но когда мы инспектировать C# объект, который получает возвращенное с SolrQueryResults, он показывает следующее:
Date1 : {01-01-0001 12:00:00 AM}
Date2 : null
Date3 : null
Первая дата представляется как ожидаемое значение datetime min. Но почему другие даты получают нулевые значения, когда это допустимые даты в формате UTC?
Лучше хранить поля даты в виде строк в Solr и использовать поле для копирования, чтобы сохранить его в формате даты solr и использовать это поле для запросов диапазона дат?
Убедитесь, что вы возвращаете поля date2 и Date3 в результатах запроса SolrNet. например Убедитесь, что вы не ограничиваете поля параметром '& fl' или используете requestHandler, который не включает эти поля. –
Это именно то, что происходило с Пейджем. Я фильтровал поля, и даты не были добавлены. Как я могу принять ваш ответ? – koder
Я поставлю свой комментарий в качестве ответа. –