Hi David,
Thanks for your continued help.

I think that you have nailed it on the head for me. I'm 100% sure that I
had previously tried that query without success. I'm not sure if perhaps I
had wrong  distErrPct or  maxDistErr values...
It's getting late, so I'm going to call it a night (I'm on GMT), but I'll
put your example into practice tomorrow and get confirmation that it's
working as expected.

I'll keep playing around with the distErrPct values as well.
Do I need to do a reindex if I change these values? (I think yes?)


On Tue, Jun 4, 2013 at 10:44 PM, Smiley, David W. <dsmi...@mitre.org> wrote:

> So "availability" is the absence of any other document's indexed time
> duration overlapping with your availability query duration.  So I think
> you should negate an overlaps query.  The overlaps query looks like:
> Intersects(-Inf start end Inf).  And remember the slight buffering needed
> as described on the wiki.  You'd add a small fraction to the start time
> and subtract a small fraction from the end time, so that you don't
> accidentally match a document that is adjacent.
>
> -availability_spatial:"Intersects( 0 30.5 114.5 3650 )"
>
> Does that work against your data?  If it doesn't, can you conjecture why
> it doesn't work based on a sample point in a document that it matched, or
> a document that should have matched but didn't?
>
> ~ David
>
> On 6/4/13 3:31 PM, "Chris Atkinson" <chrisa...@gmail.com> wrote:
>
> >Here is an example I have tried.
> >
> >So let's assume that I want to checkIn on the 30th day, and leave on the
> >115th day.
> >
> >My query would be:
> >
> >-availability_spatial:"Intersects(   30 0  3650 115 )"
> >
> >However, that wouldn't match anything. Here is an example document below
> >so
> >you can see. (I've not negated the spatial field in the filter query so
> >you
> >can see the field coordinates)
> >
> >In case the formatting is bad: See here
> >
> >http://pastie.org/pastes/8006249/text
> >
> >
> >
> ><?xml version="1.0" encoding="UTF-8"?> <response> <lst
> >name="responseHeader"
> >> <int name="status">0</int> <int name="QTime">1</int> <lst
> >>name="params"> <
> >str name="fl">availability_spatial</str> <str name="indent">true</str>
> ><str
> >name="q">id:38197 </str> <str name="_">1370374172298</str> <str name="wt">
> >xml</str> <str name="fq">availability_spatial:"Intersects( 30 0 3650 115
> >)"
> ></str> </lst> </lst> <result name="response" numFound="1" start="0">
> ><doc> <
> >arr name="availability_spatial"> <str>147.6 163.4</str> <str>164.6 178.4</
> >str> <str>192.6 220.4</str> <str>241.6 264.4</str> </arr></doc> </result>
> ></
> >response>
> >
> >
> >On Tue, Jun 4, 2013 at 8:14 PM, Chris Atkinson <chrisa...@gmail.com>
> >wrote:
> >
> >> Thanks David.
> >> Query times are really quick and my index is only 20Mb now which is
> >>about
> >> what I would expect.
> >> I'm having some problems figuring out what type of query I want to find
> >> *Available* properties with this new points system.
> >>
> >>
> >> I'm storing bookings against each document. So I have X Y coordinates,
> >> where X will be  the check in of a previous booking, and Y will be the
> >> departure.
> >>
> >> So for example illustrative purposes, a weeks booking from 10th January
> >>to
> >> the 17th, would be X Y => 10 17
> >>
> >> <field name="booking">10 17</field>
> >> <field name="booking">22 27</field>
> >>
> >> I might have several bookings.
> >>
> >> Now, I want to find available properties with my search, but I'm just
> >>not
> >> sure on the ordering of the end/start in the polygon Intersect.
> >>
> >> I've looked at this document very carefully and tried to draw it all out
> >> on paper.
> >>
> >>
> >>
> https://people.apache.org/~hossman/spatial-for-non-spatial-meetup-2013011
> >>7/
> >>
> >> Here are the suggestions:
> >>
> >> q=fieldX:"Intersects(-ƒ end start ƒ)"
> >> q=fieldX:"Intersects(-ƒ start end ƒ)"
> >> q=fieldX:"Intersects(start -ƒ ƒ end)"
> >>
> >> All of these, are great for finding the existance of a field coordinate,
> >> but I need to make sure that the property is available. So I thought I
> >> could use one of these three queries in the negative by using
> >> -fieldX:"Inter...." but none of those work.
> >>
> >> Can you shine some light on what I might be missing?
> >> What ordering would I want for *availability*
> >> Thanks very much.
> >>
> >>
> >>
> >> On Mon, Jun 3, 2013 at 11:45 PM, Smiley, David W.
> >><dsmi...@mitre.org>wrote:
> >>
> >>> Hi Chris:
> >>>
> >>> Have you read: http://wiki.apache.org/solr/SpatialForTimeDurations
> >>> You're modeling your data sub-optimally.  Full precision rectangles
> >>> (distErrPct=0) doesn't scale well and you're seeing that.  You should
> >>> represent your durations as a point and it will take up a fraction of
> >>>the
> >>> space (see above).  Furthermore, because your detail gets into one
> >>>digit
> >>> to the right of the decimal, your maxDistErr should definitely be
> >>>smaller
> >>> than 1 -- use something like 0.5 (given you have two levels of
> >>>precision
> >>> below a full day) but to be safer (more certain it's not a problem) use
> >>> 0.3 -- a little less.  Please report back how that goes.
> >>>
> >>> ~ David
> >>>
> >>> On 6/3/13 7:27 AM, "Chris Atkinson" <chrisa...@gmail.com> wrote:
> >>>
> >>> >Hi,
> >>> >I'm seeing really slow query times. 7-25 seconds when I run a simple
> >>> >filter
> >>> >query that uses my SpatialRecursivePrefixTreeFieldType field.
> >>> >
> >>> >My index is about 30k documents. Prior to adding the Spatial field,
> >>>the
> >>> on
> >>> >disk space was about 100Mb, so it's a really tiny index. Once I add
> >>>the
> >>> >spatial field (which is multi-values), the index size jumps up to 2GB.
> >>> (Is
> >>> >this normal?).
> >>> >
> >>> >Only about 10k documents will have any spatial data. Typically, they
> >>>will
> >>> >have at most 10 shapes each, but the majority are all one of two
> >>> >rectangles.
> >>> >
> >>> >This is my fieldType definition.
> >>> >
> >>> >   <fieldType name="date_availability"
> >>> >class="solr.SpatialRecursivePrefixTreeFieldType"
> >>> >                geo="false"
> >>> >                worldBounds="0 0 3650 1"
> >>> >                distErrPct="0"
> >>> >                maxDistErr="1"
> >>> >                units="degrees"
> >>> >            />
> >>> >
> >>> >And the field
> >>> >
> >>> > <field name="availability_spatial"  type="date_availability"
> >>> > indexed="true" stored="false" multiValued="true" />
> >>> >
> >>> >
> >>> >I am using the field to represent approximately 10 years after January
> >>> 1st
> >>> >2013, where each day is along the X-axis. Because the availability
> >>>starts
> >>> >and ends at 2pm and 10am, I was using a decimal place when creating my
> >>> >shape to show that detail. (Is this approach wrong?)
> >>> >
> >>> >So a typical rectangle when indexed would be (minX minY maxX maxY)
> >>> >
> >>> >Rectangle 100.6 0 120.4 1
> >>> >
> >>> >Is it wrong that my Y and X values are not of the same scale? Since I
> >>> >don't
> >>> >care about the Y axis at all, I just set it to be of 1 height always.
> >>> >
> >>> >I'm running Solr 4.3, with a small JVM of 768M (can be increased).
> >>>And I
> >>> >have 2GB RAM. (Again can be increased).
> >>> >
> >>> >Thanks
> >>>
> >>>
> >>
>
>

Reply via email to