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

squeeze a little more perf out of LatLonPoint.newDistanceQuery

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 6.1, master (7.0)
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      This query can make use of some of the same optimizations we applied to the distance sort.

        Activity

        Hide
        rcmuir Robert Muir added a comment -

        Here is a patch. Its a 10.5% QPS improvement on Mike's London benchmark. I also see similar improvements doing queries around my house in geonames.

        Changes:

        • visit(int, byte[]) does range checks on individual points. This is cheap, removes "false positives" to speed up two-phase intersection, and BKD has read the data already anyway.
        • range checks in visit(int, byte[]) and compare(min, max) just work on the binary form.
        • 2nd phase iterator uses the two-stage haversin from the distance sort when possible to reject candidates faster.
        Show
        rcmuir Robert Muir added a comment - Here is a patch. Its a 10.5% QPS improvement on Mike's London benchmark. I also see similar improvements doing queries around my house in geonames. Changes: visit(int, byte[]) does range checks on individual points. This is cheap, removes "false positives" to speed up two-phase intersection, and BKD has read the data already anyway. range checks in visit(int, byte[]) and compare(min, max) just work on the binary form. 2nd phase iterator uses the two-stage haversin from the distance sort when possible to reject candidates faster.
        Hide
        mikemccand Michael McCandless added a comment -

        +1, that's a cool idea to check the box when visiting each hit!

        Show
        mikemccand Michael McCandless added a comment - +1, that's a cool idea to check the box when visiting each hit!
        Hide
        jira-bot ASF subversion and git services added a comment -

        Commit 870baafc82b0853349db55b7886a6f31b54a69d5 in lucene-solr's branch refs/heads/master from Robert Muir
        [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=870baaf ]

        LUCENE-7105: Optimize LatLonPoint.newDistanceQuery

        Show
        jira-bot ASF subversion and git services added a comment - Commit 870baafc82b0853349db55b7886a6f31b54a69d5 in lucene-solr's branch refs/heads/master from Robert Muir [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=870baaf ] LUCENE-7105 : Optimize LatLonPoint.newDistanceQuery
        Hide
        jira-bot ASF subversion and git services added a comment -

        Commit cc412ebcaeb4925e3bfe19739582167a3835005f in lucene-solr's branch refs/heads/branch_6x from Robert Muir
        [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=cc412eb ]

        LUCENE-7105: Optimize LatLonPoint.newDistanceQuery

        Show
        jira-bot ASF subversion and git services added a comment - Commit cc412ebcaeb4925e3bfe19739582167a3835005f in lucene-solr's branch refs/heads/branch_6x from Robert Muir [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=cc412eb ] LUCENE-7105 : Optimize LatLonPoint.newDistanceQuery
        Hide
        hossman Hoss Man added a comment -

        Manually correcting fixVersion per Step #S5 of LUCENE-7271

        Show
        hossman Hoss Man added a comment - Manually correcting fixVersion per Step #S5 of LUCENE-7271

          People

          • Assignee:
            Unassigned
            Reporter:
            rcmuir Robert Muir
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development