You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Don Hill <ju...@gmail.com> on 2012/01/05 15:41:31 UTC
matching on month
Hi,
I am trying to return results based on the month of a date field, Is this
possible.
I know I can do ranges using the field:[date TO date] but now I have a
requirement to return records based on just the month part of a date
so if I have record with these dates and search on the May/05
<date name="*effDate_tdt*">2011-05-01T00:00:00Z</date>
<date name="*effDate_tdt*">2006-05-01T00:00:00Z</date>
<date name="*effDate_tdt*">2004-05-01T00:00:00Z</date>
<date name="*effDate_tdt*">1995-07-01T00:00:00Z</date>
the query would only return these
<date name="*effDate_tdt*">2011-05-017T00:00:00Z</date>
<date name="*effDate_tdt*">2006-05-30T00:00:00Z</date>
<date name="*effDate_tdt*">2004-05-03T00:00:00Z</date>
Re: matching on month
Posted by Chris Hostetter <ho...@fucit.org>.
: The query would actually look like
: fq=effDate_tdt:[2011-05-01T00:00:00Z TO 2011-05-31T00:00:00Z]
i think your overlooking part of the question ... Don seems to be asking
how to query if the value of a date field contains a day in the month of
may, regarldess of year...
: >>the query would only return these
: >>
: >><date name="*effDate_tdt*">2011-05-017T00:00:00Z</date>
: >><date name="*effDate_tdt*">2006-05-30T00:00:00Z</date>
: >><date name="*effDate_tdt*">2004-05-03T00:00:00Z</date>
...this isn't possible with the solr date field. you'll need to create a
special "month" field and index just the month value there.
-Hoss
Re: matching on month
Posted by Erick Erickson <er...@gmail.com>.
The query would actually look like
fq=effDate_tdt:[2011-05-01T00:00:00Z TO 2011-05-31T00:00:00Z]
and you need to be a little careful with the end date, this would
actually skip documents on 31 May, you'd need to do something like:
fq=effDate_tdt:[2011-05-01T00:00:00Z TO 2011-05-31T23:59:59:999Z]
As of 4.0, you can mix inclusive/exclusive as
q=effDate_tdt:[2011-05-01T00:00:00Z TO 2011-06-01T00:00:00Z}
Best
Erick
On Thu, Jan 5, 2012 at 10:04 AM, Sethi, Parampreet
<pa...@teamaol.com> wrote:
> Hi Don,
>
> You can try
>
>
> <date name="*effDate_tdt*">2011-05-01T00:00:00Z TO
> 2011-05-30T00:00:00Z</date>
> <date name="*effDate_tdt*">2006-05-01T00:00:00Z TO
> 2006-05-30T00:00:00Z</date>
> And so on.
>
>
> I am not sure if month query is available, probably other group members
> can shed more light on the same. But this can be used as quick fix.
>
> -param
>
>
> On 1/5/12 9:41 AM, "Don Hill" <ju...@gmail.com> wrote:
>
>>Hi,
>>
>>I am trying to return results based on the month of a date field, Is this
>>possible.
>>I know I can do ranges using the field:[date TO date] but now I have a
>>requirement to return records based on just the month part of a date
>>
>>so if I have record with these dates and search on the May/05
>>
>><date name="*effDate_tdt*">2011-05-01T00:00:00Z</date>
>><date name="*effDate_tdt*">2006-05-01T00:00:00Z</date>
>><date name="*effDate_tdt*">2004-05-01T00:00:00Z</date>
>><date name="*effDate_tdt*">1995-07-01T00:00:00Z</date>
>>
>>the query would only return these
>>
>><date name="*effDate_tdt*">2011-05-017T00:00:00Z</date>
>><date name="*effDate_tdt*">2006-05-30T00:00:00Z</date>
>><date name="*effDate_tdt*">2004-05-03T00:00:00Z</date>
>
Re: matching on month
Posted by "Sethi, Parampreet" <pa...@teamaol.com>.
Hi Don,
You can try
<date name="*effDate_tdt*">2011-05-01T00:00:00Z TO
2011-05-30T00:00:00Z</date>
<date name="*effDate_tdt*">2006-05-01T00:00:00Z TO
2006-05-30T00:00:00Z</date>
And so on.
I am not sure if month query is available, probably other group members
can shed more light on the same. But this can be used as quick fix.
-param
On 1/5/12 9:41 AM, "Don Hill" <ju...@gmail.com> wrote:
>Hi,
>
>I am trying to return results based on the month of a date field, Is this
>possible.
>I know I can do ranges using the field:[date TO date] but now I have a
>requirement to return records based on just the month part of a date
>
>so if I have record with these dates and search on the May/05
>
><date name="*effDate_tdt*">2011-05-01T00:00:00Z</date>
><date name="*effDate_tdt*">2006-05-01T00:00:00Z</date>
><date name="*effDate_tdt*">2004-05-01T00:00:00Z</date>
><date name="*effDate_tdt*">1995-07-01T00:00:00Z</date>
>
>the query would only return these
>
><date name="*effDate_tdt*">2011-05-017T00:00:00Z</date>
><date name="*effDate_tdt*">2006-05-30T00:00:00Z</date>
><date name="*effDate_tdt*">2004-05-03T00:00:00Z</date>