[ https://issues.apache.org/jira/browse/SOLR-773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12708560#action_12708560 ]
Uwe Schindler commented on SOLR-773: ------------------------------------ bq. Also, how does the TrieRange stuff factor into this? LocalLucene does something similar like TrieRange, but in two dimensions. It stores the Latitude and Longitude in one field as the number of a small rectangle (Cartesian tier) and the lower precision are simply bigger rectangles (I think they are quadrats). The effect is, that you only need one field name for the search, but you have the problem of limited precision. TrieRange on the other side is more universal for any numeric searches and is not limited to Geo. The bounding box search in Solr as proposed in the issue can also be simply done with two long (e.g. by scaling the lat/lon by a factor <1) or float field TrieRangeQueries. Interesting would be a comparison in speed and index size between LocalLucene and TrieRange. Both can be simply done with Solr, but I had no time for it. For our case (PANGAEA) we have another problem that is only solveable by TrieRange, not LocalLucene: Our Datasets itself are bounding boxes and if the user enters a bounding box, a hit is, if they intersect. This can be easily done with two half-open ranges. There is a small speed impact because of the half-open ranges that may hit very much TermDocs for the lower precs, but maybe I will create a special combined filter, that collects TermDocs only into one BitSet, so you can combine this ranges easily (but no idea, how to make an senseful API for that). Another idea to use TrieRange for geo search is using a hilbert curve on the earth and just do a range around the position on this curve (look on the picture on http://en.wikipedia.org/wiki/Hilbert_curve then it is clear what the idea is). As far as I know, geohash is working with this hilbert curve (it's the position on this curve), so if you index the binary geohash as a long with TrieRange, you could do this range very simply (correct me if I am wrong!). The drawback is, that you will only find quadratic areas (so the use case is: find all phone cells around (lat,lon)). In my opinion, I would recommend the following: If you need standard queries like find all phone cells around a position, use LocalLucene. If you need full flexibility, just see lat/lon or whatever CRS (Gauss-Krüger etc.) as two numeric values, where you can do SQL-like "between", ">", "<", ">=" and "<=" searches very fast. > Incorporate Local Lucene/Solr > ----------------------------- > > Key: SOLR-773 > URL: https://issues.apache.org/jira/browse/SOLR-773 > Project: Solr > Issue Type: New Feature > Reporter: Grant Ingersoll > Assignee: Grant Ingersoll > Priority: Minor > Attachments: lucene.tar.gz, SOLR-773-local-lucene.patch, > SOLR-773-local-lucene.patch, SOLR-773-local-lucene.patch, > SOLR-773-local-lucene.patch, SOLR-773-local-lucene.patch, SOLR-773.patch, > SOLR-773.patch, spatial-solr.tar.gz > > > Local Lucene has been donated to the Lucene project. It has some Solr > components, but we should evaluate how best to incorporate it into Solr. > See http://lucene.markmail.org/message/orzro22sqdj3wows?q=LocalLucene -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.