Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-1732

Multi-threaded Spatial Search

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: 2.9
    • Fix Version/s: None
    • Component/s: modules/spatial
    • Labels:
      None
    • Lucene Fields:
      New, Patch Available

      Description

      The attached patch is a large refactoring of the spatial search contrib. The primary contribution is the creation of the ThreadedDistanceFilter, which uses an ExecutorService to filter the documents in multiple threads. As a result of doing the filtering in multiple threads, the time taken to filter 1.2 million documents has been reduced from nearly 3s, to between 500-800ms.

      As part of this work, the DistanceQueryBuilder has been replaced by the SpatialFilter, a Lucene Filter, some unused functionality has been removed, and the package hierarchy has changed. Consequently this patch breaks backwards compatibility with the existing spatial search contrib.

      Also during the process of making these changes, abstractions have been added so that the one implementation of the ThreadedDistanceFilter can work with lat/long and geohash data formats, and so that precise but costly arc distance calculations can be replaced by less precise but much more efficient flat plane calculations if needed.

      This patch will be used in an upcoming patch for Solr which will improve Solr's support for spatial search.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                cmale Chris Male
                Reporter:
                cmale Chris Male
              • Votes:
                2 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: