Hi All,
I'm working with data that has multiple date precisions most of
which do not have a time associated with them, rather centuries (like
1800's), years (like 1867), and years/months (like 1918-11). I'm
able to sort and search using a workaround where we store the date as a
string CCYYMM where YYMM are optional.
I was hoping to be able to tie this into the DateField type so that
it becomes possible to facet on them without much work and duplication
of data. Unfortunately it requires the "cannonical representation of
dateTime" which means the time part of the string is mandatory.
My question is why isn't the DateField implementation of ISO 8601
broader so that it could include YYYY and YYYYMM as acceptable date
strings? What would it take to do so? Are there any work-arounds for
faceting by century, year, month without creating new fields in my
schema? The last resort would be to create these new fields but I'm
hoping to leverage the power of the DateField and the trie to replace
range stuff.
Thanks,
Tricia
Some interesting observations from tinkering with the DateFieldTest:
* 2003-03-00T00:00:00Z becomes 2003-02-28T00:00:00Z
* 2008-03-00T00:00:00Z becomes 2008-02-29T00:00:00Z
* 2003-00-00T00:00:00Z becomes 2002-11-30T00:00:00Z
* 2000-00-00T00:00:00Z becomes 1999-11-30T00:00:00Z
* 1979-00-31T00:00:00Z becomes 1978-12-31T00:00:00Z
* 2005-04-00T00:00:00Z becomes 2005-03-31T00:00:00Z
* 1850-10-00T00:00:00Z becomes 1850-09-30T00:00:00Z
The rounding /YEAR, /MONTH, etc artificially imposes extra precision
that the original data wouldn't have. In any case where months are zero
weird rounding happens.