Re: How to sort on dates?

2017-12-24 Thread Georgios Petasis

Στις 18/12/2017 15:09, ο Michael Kuhlmann έγραψε:

Am 16.12.2017 um 19:39 schrieb Georgios Petasis:

Even if the DateRangeField field can store a range of dates, doesn't
Solr understand that I have used single timestamps?

No. It could theoretically, but sorting just isn't implemented in
DateRangeField.


I have even stored the dates.
My problem is that I need to use the query formating stated in the
documentation:
https://lucene.apache.org/solr/guide/7_1/working-with-dates.html#date-range-formatting

For example, if "financialYear" is a date range, I can do
q=financialYear:2014 and it will return everything that has a date
within 2014. If the field is date point, will it work?

Yes, just query with the plain old range syntax:
q=financialYear:[2014-01-01T00:00:00.000Z TO 2015-01-01T00:00:00.000Z}

DateRangeField might be slightly faster for such queries, but that
doesn't really matter much. I only used normal date fields yet, usually
they're fast enough.

As a rule of thunb, only use DateRangeField if you really need to index
date ranges.

-Michael


Hi all,

I tried to create an index that uses DatePointField for dates. Now the 
query "financialYear:2014" raises an error:


Invalid Date String:'2014'

On the other hand, with DateRangeField it works. And since I cannot 
restrict users (to not send only years like 2014), I cannot use 
DatePointField.


I am starting to think that there is no alternative than using both, one 
for queries and the other for sorting.


Is there a reason Solr does not understand "[2014 TO 2016]" in 
DatePointField as it does for DatePointField?


Best,

George



Re: How to sort on dates?

2017-12-24 Thread Georgios Petasis

Dear Erick,

Thanks for the idea, it doesn't work. It raises an exception that the 
value is missing the double() method.


Best,
George

Στις 18/12/2017 21:19, ο Erick Erickson έγραψε:

You _might_ (and I haven't tried this) be able to use sorting by
funtion with min/max for a date range field, see: "Sort by Function"
here: https://lucene.apache.org/solr/guide/6_6/function-queries.html.


On Mon, Dec 18, 2017 at 5:09 AM, Michael Kuhlmann  wrote:

Am 16.12.2017 um 19:39 schrieb Georgios Petasis:

Even if the DateRangeField field can store a range of dates, doesn't
Solr understand that I have used single timestamps?

No. It could theoretically, but sorting just isn't implemented in
DateRangeField.


I have even stored the dates.
My problem is that I need to use the query formating stated in the
documentation:
https://lucene.apache.org/solr/guide/7_1/working-with-dates.html#date-range-formatting

For example, if "financialYear" is a date range, I can do
q=financialYear:2014 and it will return everything that has a date
within 2014. If the field is date point, will it work?

Yes, just query with the plain old range syntax:
q=financialYear:[2014-01-01T00:00:00.000Z TO 2015-01-01T00:00:00.000Z}

DateRangeField might be slightly faster for such queries, but that
doesn't really matter much. I only used normal date fields yet, usually
they're fast enough.

As a rule of thunb, only use DateRangeField if you really need to index
date ranges.

-Michael





Re: How to sort on dates?

2017-12-18 Thread Erick Erickson
You _might_ (and I haven't tried this) be able to use sorting by
funtion with min/max for a date range field, see: "Sort by Function"
here: https://lucene.apache.org/solr/guide/6_6/function-queries.html.


On Mon, Dec 18, 2017 at 5:09 AM, Michael Kuhlmann  wrote:
> Am 16.12.2017 um 19:39 schrieb Georgios Petasis:
>> Even if the DateRangeField field can store a range of dates, doesn't
>> Solr understand that I have used single timestamps?
>
> No. It could theoretically, but sorting just isn't implemented in
> DateRangeField.
>
>> I have even stored the dates.
>> My problem is that I need to use the query formating stated in the
>> documentation:
>> https://lucene.apache.org/solr/guide/7_1/working-with-dates.html#date-range-formatting
>>
>> For example, if "financialYear" is a date range, I can do
>> q=financialYear:2014 and it will return everything that has a date
>> within 2014. If the field is date point, will it work?
>
> Yes, just query with the plain old range syntax:
> q=financialYear:[2014-01-01T00:00:00.000Z TO 2015-01-01T00:00:00.000Z}
>
> DateRangeField might be slightly faster for such queries, but that
> doesn't really matter much. I only used normal date fields yet, usually
> they're fast enough.
>
> As a rule of thunb, only use DateRangeField if you really need to index
> date ranges.
>
> -Michael


Re: How to sort on dates?

2017-12-18 Thread Michael Kuhlmann
Am 16.12.2017 um 19:39 schrieb Georgios Petasis:
> Even if the DateRangeField field can store a range of dates, doesn't
> Solr understand that I have used single timestamps?

No. It could theoretically, but sorting just isn't implemented in
DateRangeField.

> I have even stored the dates.
> My problem is that I need to use the query formating stated in the
> documentation:
> https://lucene.apache.org/solr/guide/7_1/working-with-dates.html#date-range-formatting
> 
> For example, if "financialYear" is a date range, I can do
> q=financialYear:2014 and it will return everything that has a date
> within 2014. If the field is date point, will it work?

Yes, just query with the plain old range syntax:
q=financialYear:[2014-01-01T00:00:00.000Z TO 2015-01-01T00:00:00.000Z}

DateRangeField might be slightly faster for such queries, but that
doesn't really matter much. I only used normal date fields yet, usually
they're fast enough.

As a rule of thunb, only use DateRangeField if you really need to index
date ranges.

-Michael


Re: How to sort on dates?

2017-12-16 Thread Georgios Petasis

Στις 15/12/2017 20:05, ο Shawn Heisey έγραψε:

On 12/15/2017 2:53 AM, Georgios Petasis wrote:

I have a field of type "date_range" defined as:



The problem is that sorting on this field does not work (despite the
fact that I put dates in there). Instead I get an error prompting to
perform sorting through a query.

Stating what Michael said in a different way:  Entries in a
DateRangeField can be a date range, not just a single timestamp.  How
would you decide what specific date to use in a sort?  The start of the
range?  The end of the range?  The middle of the range?  Any option that
the developers chose would be wrong for somebody, and it's not a
straightforward thing to make that choice configurable.

Michael suggested DatePointField.  That should work, because this type
holds a single timestamp, not a range.

The reason that DateRangeField is deprecated is that it uses a legacy
Lucene class that will no longer be available in 8.0.  Coming up with a
replacement is one of the many things that must be addressed before the
8.0 release.

Thanks,
Shawn
Even if the DateRangeField field can store a range of dates, doesn't 
Solr understand that I have used single timestamps?

I have even stored the dates.
My problem is that I need to use the query formating stated in the 
documentation: 
https://lucene.apache.org/solr/guide/7_1/working-with-dates.html#date-range-formatting
For example, if "financialYear" is a date range, I can do 
q=financialYear:2014 and it will return everything that has a date 
within 2014. If the field is date point, will it work?


George


Re: How to sort on dates?

2017-12-16 Thread Georgios Petasis

Στις 15/12/2017 20:05, ο Shawn Heisey έγραψε:

On 12/15/2017 2:53 AM, Georgios Petasis wrote:

I have a field of type "date_range" defined as:



The problem is that sorting on this field does not work (despite the
fact that I put dates in there). Instead I get an error prompting to
perform sorting through a query.

Stating what Michael said in a different way:  Entries in a
DateRangeField can be a date range, not just a single timestamp.  How
would you decide what specific date to use in a sort?  The start of the
range?  The end of the range?  The middle of the range?  Any option that
the developers chose would be wrong for somebody, and it's not a
straightforward thing to make that choice configurable.

Michael suggested DatePointField.  That should work, because this type
holds a single timestamp, not a range.

The reason that DateRangeField is deprecated is that it uses a legacy
Lucene class that will no longer be available in 8.0.  Coming up with a
replacement is one of the many things that must be addressed before the
8.0 release.

Thanks,
Shawn
Even if the DateRangeField field can store a range of dates, doesn't 
Solr understand that I have used single timestamps?

I have even stored the dates.
My problem is that I need to use the query formating stated in the 
documentation: 
https://lucene.apache.org/solr/guide/7_1/working-with-dates.html#date-range-formatting
For example, if "financialYear" is a date range, I can do 
q=financialYear:2014 and it will return everything that has a date 
within 2014. If the field is date point, will it work?


George


Re: How to sort on dates?

2017-12-15 Thread Shawn Heisey
On 12/15/2017 2:53 AM, Georgios Petasis wrote:
> I have a field of type "date_range" defined as:
>
>  multiValued="false" indexed="true" stored="true"/>
>
> The problem is that sorting on this field does not work (despite the
> fact that I put dates in there). Instead I get an error prompting to
> perform sorting through a query.

Stating what Michael said in a different way:  Entries in a
DateRangeField can be a date range, not just a single timestamp.  How
would you decide what specific date to use in a sort?  The start of the
range?  The end of the range?  The middle of the range?  Any option that
the developers chose would be wrong for somebody, and it's not a
straightforward thing to make that choice configurable.

Michael suggested DatePointField.  That should work, because this type
holds a single timestamp, not a range.

The reason that DateRangeField is deprecated is that it uses a legacy
Lucene class that will no longer be available in 8.0.  Coming up with a
replacement is one of the many things that must be addressed before the
8.0 release.

Thanks,
Shawn



Re: How to sort on dates?

2017-12-15 Thread Michael Kuhlmann
Hi Georgios,

DateRangeField is a kind of SpatialField which is not sortable at all.

For sorting, use a DatePointField instead. It's not deprecated; the
deprecated class is TrieDateField.

Best,
Michael


Am 15.12.2017 um 10:53 schrieb Georgios Petasis:
> Hi all,
> 
> I have a field of type "date_range" defined as:
> 
>  multiValued="false" indexed="true" stored="true"/>
> 
> The problem is that sorting on this field does not work (despite the
> fact that I put dates in there). Instead I get an error prompting to
> perform sorting through a query.
> 
> How can I do that? There is no documentation that I could find, that
> shows an alternative.
> 
> Also, I think that I saw a warning somewhere, that DateRangeField is
> deprecated. But no alternative is suggested:
> 
> https://lucene.apache.org/solr/guide/7_1/working-with-dates.html
> 
> I am using solr 7.1.
> 
> George
> 



How to sort on dates?

2017-12-15 Thread Georgios Petasis

Hi all,

I have a field of type "date_range" defined as:

multiValued="false" indexed="true" stored="true"/>


The problem is that sorting on this field does not work (despite the 
fact that I put dates in there). Instead I get an error prompting to 
perform sorting through a query.


How can I do that? There is no documentation that I could find, that 
shows an alternative.


Also, I think that I saw a warning somewhere, that DateRangeField is 
deprecated. But no alternative is suggested:


https://lucene.apache.org/solr/guide/7_1/working-with-dates.html

I am using solr 7.1.

George