Everything is working great now. Thanks David
On Wed, Jun 5, 2013 at 12:07 AM, David Smiley (@MITRE.org) < dsmi...@mitre.org> wrote: > maxDistErr should be like 0.3 based on earlier parts of this discussion > since > your data is to one of a couple hours of the day, not whole days. If it > was > whole days, you would use 1. Changing this requires a re-index. So does > changing worldBounds if you do so. > distErrPct should be 0. Changing it does not require a re-index because > you > are indexing points, not other shapes. This only affects other shapes. > > Speaking of that slight buffer to the query shape I said in my last email, > it should be < half of maxDistErr, whatever you set that to. So use like > 0.1. > > ~ David > > > Chris Atkinson wrote > > 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. < > > > dsmiley@ > > > > 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" < > > > chrisacky@ > > > > 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 < > > > chrisacky@ > > > > > >> >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. > >> >>< > > > dsmiley@ > > > >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" < > > > chrisacky@ > > > > 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 > >> >>> > >> >>> > >> >> > >> > >> > > > > > > ----- > Author: > http://www.packtpub.com/apache-solr-3-enterprise-search-server/book > -- > View this message in context: > http://lucene.472066.n3.nabble.com/SpatialRecursivePrefixTreeFieldType-Spatial-Searching-tp4067778p4068216.html > Sent from the Solr - User mailing list archive at Nabble.com. >