Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Won't Fix
-
None
-
None
-
None
-
None
-
New
Description
LatLonPoint.nearest is very efficient at identifying the top-k documents sorted by distance from a given point, by working directly on the BKD tree. This doesn't support filtering though, so if you need to filter by another property, you need to switch to querying on the filter and sorting by a LatLonPointSortField. Unfortunately this requires visiting all documents that match the filter.
We could leverage the new setMinCompetitiveScore API introduced in LUCENE-4100 in order to allow for retrieval of nearest neighbors with arbitrary filters, by recomputing a bounding-box when a new minimum competitive score is set.
In the future we could also leverage this to speed up queries that are boosted by distance. For instance if the final score is a weighted sum of the score on a text field and a distance-based score, and the minimum competitive score gets higher than the maximum score that may be produced on the text field at some point, then we could dynamically prune hits based on the distance.
Attachments
Attachments
Issue Links
- is superceded by
-
LUCENE-8340 Efficient boosting by recency
- Closed