2
我正在爲日期字段進行映射,如下所示。使用elasticsearch的日期篩選器,使用嵌套c#
.Date(s => s.Name("createdOn").Format("yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss||MM/dd/yyyy||yyyy/MM/dd"))
我想在特定日期後創建文檔。我傳遞日期格式MM/DD/YYYY的過濾範圍字符串如下所示..
DateTime date;
DateTime.TryParse(filter.SearchText, out date);
string dateString = date.ToString("MM/dd/yyyy");
query = filterDesc.And(filterDesc.Range(n =>n.Greater(dateString).OnField(searchFields[filter.Field])));
但彈性搜索考慮時間也被搜索到。即我想要在2/10/2015
之後創建文檔,我正在獲取也在2/10/2015
上創建的文檔。請讓我知道可能的解決方案。
謝謝,並提前。
至少在NEST 1.4.1中,日期相關範圍方法對格式有重載,如'n.GreaterOrEquals(date,「MM/dd/yyyy」)'。只是爲了幫助保持一點清潔。 – Snixtor 2015-02-11 21:31:46
@Snixtor我已經完成了,如果你注意到。日期計算中的小複雜性是爲了滿足問題的要求。 – bittusarkar 2015-02-11 21:59:05
@bsarkar我正在尋找'2/11/2015'之後創建的文檔。我嘗試了格式的重載方法。但仍然沒有運氣。作爲將日期設置爲'2015年11月2日23:59:59'的臨時修復,我正在獲取所需的文檔。 – 2015-02-12 06:26:14