Re: queries including time zone

2013-11-18 Thread Eric Katherman
Anybody have any additional suggestions for this TZ issue we're having?  I've 
included the query below.  The full debug output is in the gist link also 
included if you want to see it.  As mentioned, the test solr installation has 
one document with a date that was set to the 15th, and when this query was run 
during the evening of the 14th we still got that one document in the response.  
Are there any other potential culprits here?  E.g. DateField vs TrieDateField?

params: {
  debugQuery: true,
  indent: true,
  q: values_field_66_date:[* TO NOW/DAY+1DAY],
  TZ:'America/Los_Angeles': ,
  _: 1384487341231,
  wt: json,
  rows: 25
}

https://gist.github.com/anonymous/7478773

Thanks,
Eric

On Nov 14, 2013, at 10:58 PM, Eric Katherman kather...@gmail.com wrote:

 We're still not seeing the proper result.I've included a gist of the 
 query and its debug result.  This was run on a clean index running 4.4.0 with 
 just one document.  That document has a date of 11/15/2013 yet the date in 
 the included TZ it is the 14th but I still get that document returned.  
 Hoping someone can help.
 
 https://gist.github.com/anonymous/7478773
 
 
 On Nov 14, 2013, at 3:06 PM, Chris Hostetter hossman_luc...@fucit.org wrote:
 
 
 I've beefed up the ref guide page on dates to include more info about all 
 of this...
 
 https://cwiki.apache.org/confluence/display/solr/Working+with+Dates
 
 
 -Hoss
 



Re: queries including time zone

2013-11-18 Thread Chris Hostetter

: We're still not seeing the proper result.  I've included a gist of the 
: query and its debug result.  This was run on a clean index running 4.4.0 
: with just one document.  That document has a date of 11/15/2013 yet the 
: date in the included TZ it is the 14th but I still get that document 
: returned.  Hoping someone can help.
: 
: https://gist.github.com/anonymous/7478773

1) please don't use gist/pastie URLs in email -- they can be 
changed/deleted after you send your email, making it impossible for people 
reading email archives to udnerstand your question or learn aything from 
the examples later.  Just include the output in the body of your email

2) you haven't included enough information (either in your email or in 
the gist) to make sense of the behavior you are seeing:

a) what *exact* value is in the index for this document?
b) what *exact* time did you run the query?

you use expressions like date of 11/15/2013 and the 14th but those are 
vague concepts that could mean specific moments in time in ranges of up 
to 48 hours (depending on what timezone you mean when you refer to them 
as a string in terms of days)

Here's some simple, concrete, examples using the Solr example configs to 
help show you how the TZ option affects date math.  These examples don't 
require any documents to be indexed...

w/o TZ, so all math is relative to UTC...

$ date --utc  curl -s 
'http://localhost:8983/solr/collection1/query?omitHeader=truedebug=queryq=*:*fq=now_dt:NOWfq=today_dt:NOW/DAYfq=tomorrow_dt:NOW/DAY%2B1DAYfq=lastmonth_dt:NOW-1MONTH/DAYfq=specific_rounded_dt:2013-07-04T12:34:56Z/DAY;'
 | grep 2013 | grep -v DAY
Mon Nov 18 18:58:57 UTC 2013
parsed_filter_queries:[now_dt:2013-11-18T18:58:57.813Z,
  today_dt:2013-11-18T00:00:00Z,
  tomorrow_dt:2013-11-19T00:00:00Z,
  lastmonth_dt:2013-10-18T00:00:00Z,
  specific_rounded_dt:2013-07-04T00:00:00Z]}}


w/TZ = America/Los_Angeles...

$ date --utc  curl -s 
'http://localhost:8983/solr/collection1/query?omitHeader=truedebug=queryq=*:*fq=now_dt:NOWfq=today_dt:NOW/DAYfq=tomorrow_dt:NOW/DAY%2B1DAYfq=lastmonth_dt:NOW-1MONTH/DAYfq=specific_rounded_dt:2013-07-04T12:34:56Z/DAYTZ=America/Los_Angeles'
 | grep 2013 | grep -v DAY
Mon Nov 18 18:58:27 UTC 2013
parsed_filter_queries:[now_dt:2013-11-18T18:58:27.477Z,
  today_dt:2013-11-18T08:00:00Z,
  tomorrow_dt:2013-11-19T08:00:00Z,
  lastmonth_dt:2013-10-18T07:00:00Z,
  specific_rounded_dt:2013-07-04T07:00:00Z]}}


Below is my best effort to reproduce what you seemed to be describing that 
you were trying to do, which works as expected.  Note that the document 
i've indexed has a field value of 2013-11-19T01:00:00Z.  

In the first query, at Mon Nov 18 19:12:07 UTC 2013 we ask Solr to 
compute NOW/DAY+1DAY using UTC to define the start of the current day: 
as a result that document does not match our query.  In the second query, 
executed at Mon Nov 18 19:12:29 UTC 2013, we tell solr to use 
America/Los_Angeles when rounding to the nearest day: as a result, the 
document *does* match our query, because 2013-11-19T01:00:00Z is before 
the start of the tomorrow in terms of the start of day conventions 
for America/Los_Angeles (ie: ...T08:00:00 UTC).

(One thing to note about these examples, is that unlike the simple 
term queries from my above examples, when outputing a range 
query over a date, the debug output displays the ranges in terms of ms 
since epoch) so i've also included some basic re-formatting after each 
example query)

$ curl -H 'Content-Type: application/xml' -d 'adddocfield 
name=idHOSS/fieldfield 
name=my_dt2013-11-19T01:00:00Z/field/doc/add' 
'http://localhost:8983/solr/collection1/update?commit=true'
?xml version=1.0 encoding=UTF-8?
response
lst name=responseHeaderint name=status0/intint 
name=QTime562/int/lst
/response

$ date --utc  curl 
'http://localhost:8983/solr/collection1/query?q=my_dt:\[*+TO+NOW/DAY%2B1DAY\]debug=query'
Mon Nov 18 19:12:07 UTC 2013
{
  responseHeader:{
status:0,
QTime:6,
params:{
  q:my_dt:[* TO NOW/DAY+1DAY],
  debug:query}},
  response:{numFound:0,start:0,docs:[]
  },
  debug:{
rawquerystring:my_dt:[* TO NOW/DAY+1DAY],
querystring:my_dt:[* TO NOW/DAY+1DAY],
parsedquery:my_dt:[* TO 138481920],
parsedquery_toString:my_dt:[* TO 138481920],
QParser:LuceneQParser}}
$ date --utc --date=@1384819200
Tue Nov 19 00:00:00 UTC 2013

$ date --utc  curl 
'http://localhost:8983/solr/collection1/query?q=my_dt:\[*+TO+NOW/DAY%2B1DAY\]TZ=America/Los_Angelesdebug=query'
Mon Nov 18 19:12:29 UTC 2013
{
  responseHeader:{
status:0,
QTime:2,
params:{
  q:my_dt:[* TO NOW/DAY+1DAY],
  debug:query,
  TZ:America/Los_Angeles}},
  response:{numFound:1,start:0,docs:[
  {
id:HOSS,
my_dt:2013-11-19T01:00:00Z,
_version_:1452070046839865344}]
  },
  debug:{
rawquerystring:my_dt:[* TO NOW/DAY+1DAY],
querystring:my_dt:[* TO NOW/DAY+1DAY],
parsedquery:my_dt:[* 

Re: queries including time zone

2013-11-14 Thread Erick Erickson
IMO you will save yourself endless grief just biting the bullet and working
with UTC
at all times. The instant you have uses in even adjacent but different time
zones,
you'll have to deal with this anyway.

FWIW,
Erick


On Thu, Nov 14, 2013 at 12:26 AM, Jack Krupansky j...@basetechnology.comwrote:

 I believe it is the TZ column from this table:
 http://en.wikipedia.org/wiki/List_of_tz_database_time_zones

 Yeah, it's on my TODO list for my book.

 I suspect that tz will not affect NOW, which is probably UTC. I
 suspect that tz only affects literal dates in date math.

 -- Jack Krupansky

 -Original Message- From: Eric Katherman
 Sent: Wednesday, November 13, 2013 11:38 PM
 To: solr-user@lucene.apache.org
 Subject: queries including time zone


 Can anybody provide any insight about using the tz param? The behavior of
 this isn't affecting date math and /day rounding.  What format does the tz
 variables need to be in?  Not finding any documentation on this.

 Sample query we're using:

 path=/select params={tz=America/Chicagosort=id+descstart=0q=
 application_id:51b30ed9bc571bd96773f09c+AND+object_key:object_26+AND+
 values_field_215_date:[*+TO+NOW/DAY%2B1DAY]wt=jsonrows=25}

 Thanks!
 Eric=



Re: queries including time zone

2013-11-14 Thread Chris Hostetter

: Can anybody provide any insight about using the tz param? The behavior 
: of this isn't affecting date math and /day rounding.  What format does 
: the tz variables need to be in?  Not finding any documentation on this.

it's not tz it's TZ

The input/output format is always in UTC, but TZ will affect all of the 
date math...

https://wiki.apache.org/solr/CoreQueryParameters#TZ


-Hoss


Re: queries including time zone

2013-11-14 Thread Chris Hostetter

I've beefed up the ref guide page on dates to include more info about all 
of this...

https://cwiki.apache.org/confluence/display/solr/Working+with+Dates


-Hoss


Re: queries including time zone

2013-11-14 Thread Eric Katherman
We're still not seeing the proper result.I've included a gist of the query 
and its debug result.  This was run on a clean index running 4.4.0 with just 
one document.  That document has a date of 11/15/2013 yet the date in the 
included TZ it is the 14th but I still get that document returned.  Hoping 
someone can help.

https://gist.github.com/anonymous/7478773


On Nov 14, 2013, at 3:06 PM, Chris Hostetter hossman_luc...@fucit.org wrote:

 
 I've beefed up the ref guide page on dates to include more info about all 
 of this...
 
 https://cwiki.apache.org/confluence/display/solr/Working+with+Dates
 
 
 -Hoss



queries including time zone

2013-11-13 Thread Eric Katherman
Can anybody provide any insight about using the tz param? The behavior of this 
isn't affecting date math and /day rounding.  What format does the tz variables 
need to be in?  Not finding any documentation on this.

Sample query we're using:

path=/select 
params={tz=America/Chicagosort=id+descstart=0q=application_id:51b30ed9bc571bd96773f09c+AND+object_key:object_26+AND+values_field_215_date:[*+TO+NOW/DAY%2B1DAY]wt=jsonrows=25}

Thanks!
Eric

Re: queries including time zone

2013-11-13 Thread Jack Krupansky

I believe it is the TZ column from this table:
http://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Yeah, it's on my TODO list for my book.

I suspect that tz will not affect NOW, which is probably UTC. I suspect 
that tz only affects literal dates in date math.


-- Jack Krupansky

-Original Message- 
From: Eric Katherman

Sent: Wednesday, November 13, 2013 11:38 PM
To: solr-user@lucene.apache.org
Subject: queries including time zone

Can anybody provide any insight about using the tz param? The behavior of 
this isn't affecting date math and /day rounding.  What format does the tz 
variables need to be in?  Not finding any documentation on this.


Sample query we're using:

path=/select 
params={tz=America/Chicagosort=id+descstart=0q=application_id:51b30ed9bc571bd96773f09c+AND+object_key:object_26+AND+values_field_215_date:[*+TO+NOW/DAY%2B1DAY]wt=jsonrows=25}


Thanks!
Eric=