Opened 13 years ago

Closed 13 years ago

#571 closed defect (fixed)

Update to geospatial searching.

Reported by: jesseeichar Owned by: simonp
Priority: major Milestone: v2.6.5
Component: General Version: v2.6.3
Keywords: Cc:

Description

I have a patch that addresses several issues with spatial searching. Some are very minor others are more important. A list of the fixes are as follows:

  • Add Generics information to remove warnings
  • Changed how SpatialFilter caches features. This results in a massive performance improvement.
  • Fix an issue where updating the spatial index did not update the spatial index cache and therefore could get false positives or miss matches
  • Changed semantics of within so that within is within or equals. IE if you search for within switzerland you will get results for full switzerland. Before intersection was required for this which would result in too many features or (within and equals) which was a much slower match.
  • removed some deprecated use of BBOX filter API
  • Added performance improvement in ReprojectingFilterVisitor so it will not reproject if the 2 SRS are the same
  • use OpenBitSet for performance (although in practice it probably doesn't make a big difference, but seems to be recommended by lucene)

Attachments (2)

571_spatial_search_enhancements.patch (45.5 KB ) - added by jesseeichar 13 years ago.
571_spatial_search_enhancements.2.patch (38.9 KB ) - added by jesseeichar 13 years ago.
Updated the patch. I found a new bug (in both old and new implementations) and added some tests.

Download all attachments as: .zip

Change History (4)

by jesseeichar, 13 years ago

in reply to:  description comment:1 by simonp, 13 years ago

Owner: changed from geonetwork-devel@… to simonp
Status: newassigned

Replying to jesseeichar:

I have a patch that addresses several issues with spatial searching. Some are very minor others are more important. A list of the fixes are as follows:

  • Add Generics information to remove warnings
  • Changed how SpatialFilter caches features. This results in a massive performance improvement.
  • Fix an issue where updating the spatial index did not update the spatial index cache and therefore could get false positives or miss matches
  • Changed semantics of within so that within is within or equals. IE if you search for within switzerland you will get results for full switzerland. Before intersection was required for this which would result in too many features or (within and equals) which was a much slower match.
  • removed some deprecated use of BBOX filter API
  • Added performance improvement in ReprojectingFilterVisitor so it will not reproject if the 2 SRS are the same
  • use OpenBitSet for performance (although in practice it probably doesn't make a big difference, but seems to be recommended by lucene)

I'm currently testing catalogs with a few million records so I'll take this patch on as part of that. Thanks Jesse.

by jesseeichar, 13 years ago

Updated the patch. I found a new bug (in both old and new implementations) and added some tests.

comment:2 by simonp, 13 years ago

Resolution: fixed
Status: assignedclosed

Fixed in svn commit rev 8115 - thanks Jesse!

Note: See TracTickets for help on using tickets.