我們使用SolrNet API來索引和搜索包含三個日期字段的文檔集合: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>
但是,當我們考察其獲取與SolrQueryResults返回的C#對象,它顯示以下內容:
Date1 : {01-01-0001 12:00:00 AM}
Date2 : null
Date3 : null
第一個日期表示爲預期的日期時間最小值。但爲什麼其他日期在UTC格式的有效日期中獲得空值?
將日期字段作爲字符串存儲在Solr中並使用副本字段將其存儲在solr日期格式中並將此字段用於日期範圍查詢是否更好?
檢查所換來對你SolrNet查詢結果的日期2和DATE3領域。例如確保你沒有用'&fl'參數限制字段,或者使用不包含這些字段的requestHandler。 – 2013-03-13 14:57:21
這正是Paige發生的情況。我正在過濾字段,並沒有添加日期。我怎樣才能接受你的答案? – koder 2013-03-13 15:18:43
我會把我的評論作爲答案。 – 2013-03-13 15:30:14