We're doing this for our site (http://boston.povo.com) the simple way: have 
Lucene return all matches based on non-geo criteria and then fetch the items 
from the db by id and run our geo logic.  We store some "rough" positioning in 
Lucene, such as the region and use that for first level rejection.  (If your 
geometries can get artificially large then of course this doesn't fully work, 
but in that case perhaps you store "total area" or some flag that says this 
item spans a region.

We briefly considered a bounding box model for Lucene to do better first level 
rejection, but performance was more than good enough with the approach I 
outlined above for our corpus.

There's one thing we never implemented, which was calculating the minimum 
distance between two geometries (we almost always have one side of the 
comparison as a point).  Do you happen to know a reasonably speedy algorithm to 
do this?

Thanks!
--Max

-----Original Message-----
From: Stephane Nicoll [mailto:[EMAIL PROTECTED] 
Sent: Sunday, February 17, 2008 5:22 AM
To: java-user@lucene.apache.org
Subject: Using lucene with a Geospatial catalog

Hi,

I've been browsing the archive and the documentation about Lucene. It
really seems that it could help implementing my use case but I would
like to be sure first.

What I need is to be able to search data in a "catalog" which is
geo-enabled. The data is stored in a database. A record has namely

* name
* keywords
* footprint (that is a geometry that represents the record)
* date range (optional) that defines the "validity of the data"
* Timestamp
* Creation date
* various boolean flag
* custom data

I understand that Lucene is powerful for full-text based search but
what about searching something like "give me all records that contains
the kewords foo, with flag bar true, valid between 20070602 and
20070907 and whose geometry intersect a given box.

I've seen on the list people using tricks by storing the coordinates
in a way we could use range. In my case, the geometry is potentially
very complex. The database handle that for me (Oracle Spatial or
PostGIS for instance) with intersect, contains and such. Is it
possible to combine a lucene search with a DB query? Any best
practices on that topic?

Thanks,
Stéphane


-- 
Large Systems Suck: This rule is 100% transitive. If you build one,
you suck" -- S.Yegge

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to