lucene-solr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Grant Ingersoll (JIRA)" <>
Subject [jira] Commented: (SOLR-1568) Implement Spatial Filter
Date Mon, 08 Feb 2010 21:47:28 GMT


Grant Ingersoll commented on SOLR-1568:

So, one of the things I'm not sure on here is how best to associate the filtering information
with the FieldType.  On the one hand, we could have  a base class or a small interface that
defines the filter call back on the FieldType and then the PointType and other spatial FieldTypes
could implement/extend that capability.  Going this approach means that if someone wants to
provide a different way of filtering for a FieldType, they would have to implement a derived
class overriding the method.  For instance, on the PointType, the base implementation may
be to just generate a range query for each field based on distance.  However, if someone wanted
a different approach, they would then have to extend PointType and register a whole other
FieldType, let's call it NewFilterPointType.

An alternative approach would be to separate the filter calculation in a different class and
then somehow associate it with the FieldType (maybe as a map).  I've started this to some
extent on the last NON WORKING patch, but don't feel great about the actual implementation
just yet.  In the case above, Solr would provide a default implementation (automatically registered)
and then it could be overridden by configuring in solrconfig.xml.

I'm also open to other suggestions.  I still am pretty open to taking baby steps here by defining
the API as Yonik described above (more or less, see my last patch) but only providing a single
implementation right now for the Spatial Tile Field Type (Cartesian Tier).

Thoughts and suggestions welcome?  I'd like to get something in Solr pretty soon.

> Implement Spatial Filter
> ------------------------
>                 Key: SOLR-1568
>                 URL:
>             Project: Solr
>          Issue Type: New Feature
>            Reporter: Grant Ingersoll
>            Assignee: Grant Ingersoll
>            Priority: Minor
>             Fix For: 1.5
>         Attachments:, SOLR-1568.patch
> Given an index with spatial information (either as a geohash, SpatialTileField (see SOLR-1586)
or just two lat/lon pairs), we should be able to pass in a filter query that takes in the
field name, lat, lon and distance and produces an appropriate Filter (i.e. one that is aware
of the underlying field type for use by Solr. 
> The interface _could_ look like:
> {code}
> &fq={!sfilt dist=20}location:49.32,-79.0
> {code}
> or it could be:
> {code}
> &fq={!sfilt lat=49.32 lat=-79.0 f=location dist=20}
> {code}
> or:
> {code}
> &fq={!sfilt p=49.32,-79.0 f=location dist=20}
> {code}
> or:
> {code}
> &fq={!sfilt lat=49.32,-79.0 fl=lat,lon dist=20}
> {code}

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message