You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Billnbell <bi...@gmail.com> on 2013/04/12 07:53:25 UTC

Support old syntax including geodist

Since Spatial Lucene 4 does not seem to support geodist(), even sending
d,pt,fq={!geofilt}does not help me = I need to sort. So I end up having to
set up the sortsq. Any other ideas on how to support the old syntax on the
new spatial? Can I create a transform or something ?

Convert

http://localhost:8983/solr/providersearch/select?rows=20&q=*:*&fq={!geofilt}&pt=26.012156,-80.311943&d=50&sfield=store_geohash&sort=geodist()
asc

To
 

http://localhost:8983/solr/providersearch/select?rows=20&q=*:*&fq={!%20v=$geoq}&sortsq={!%20score=distance%20v=$geoq}&geoq=store_geohash:%22Intersects(Circle(26.012156,-80.311943%20d=.72369))%22&fl=store_lat_lon,distance:mul(query($sortsq),69.09)&sort=query($sortsq)%20asc
 




--
View this message in context: http://lucene.472066.n3.nabble.com/Support-old-syntax-including-geodist-tp4055476.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: Support old syntax including geodist

Posted by "David Smiley (@MITRE.org)" <DS...@mitre.org>.
Hi Bill,

FYI see https://issues.apache.org/jira/browse/SOLR-4242


Billnbell wrote
> Since Spatial Lucene 4 does not seem to support geodist(), even sending
> d,pt,fq={!geofilt}does not help me = I need to sort. So I end up having to
> set up the sortsq. Any other ideas on how to support the old syntax on the
> new spatial? Can I create a transform or something ?

A couple times or more I've looked into how geodist() works with the
intention of adding support for the new spatial 4 field type but I wind up
concluding the result would be a big hack because geodist() works
fundamentally differently then how it would need to work, yet it would
somehow have to work in two different ways.  Maybe I should just accept that
it's going to be an ugly hack, trading that for making things easier for
users.

Another thing I want to mention is that if you've got a single value'ed
spatial field then I suggest using LatLonType if for nothing else but
sorting, and hence you can use geodist().


> Convert
> 
> http://localhost:8983/solr/providersearch/select?rows=20&q=*:*&fq={!geofilt}&pt=26.012156,-80.311943&d=50&sfield=store_geohash&sort=geodist()
> asc
> 
> To
>  
> 
> http://localhost:8983/solr/providersearch/select?rows=20&q=*:*&fq={!%20v=$geoq}&sortsq={!%20score=distance%20v=$geoq}&geoq=store_geohash:%22Intersects(Circle(26.012156,-80.311943%20d=.72369))%22&fl=store_lat_lon,distance:mul(query($sortsq),69.09)&sort=query($sortsq)%20asc

I'm aware things can get ugly but can't you just use 'q' for the spatial
query that turns the distance as the score both for sorting and returning
it?  It'd significantly simply this query.

~ David




-----
 Author: http://www.packtpub.com/apache-solr-3-enterprise-search-server/book
--
View this message in context: http://lucene.472066.n3.nabble.com/Support-old-syntax-including-geodist-tp4055476p4055733.html
Sent from the Solr - User mailing list archive at Nabble.com.