Refactor and clean up core geo api [LUCENE-8364]
- Dominant language
- Java
- Stars
- 3.6k
- Forks
- 1.4k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 88
Description
The core geo API is quite disorganized and confusing. For example there is `Polygon` for creating an instance of polygon vertices and holes and `Polygon2D` for computing relations between points and polygons. There is also a `PolygonPredicate` and `DistancePredicate` in `GeoUtils` for computing point in polygon and point distance relations, respectively, and a `GeoRelationUtils` utility class which is no longer used for anything. This disorganization is due to the organic improvements of simple `LatLonPoint` indexing and search features and a little TLC is needed to clean up api to make it more approachable and easy to understand.
---
Migrated from [LUCENE-8364](https://issues.apache.org/jira/browse/LUCENE-8364) by Nick Knize (@nknize), updated Jun 21 2018
Attachments: [LUCENE-8364.patch](https://apache.github.io/lucene-jira-archive/attachments/LUCENE-8364/LUCENE-8364.patch)
Contributor guide
Research direction
Review the Polygon and Polygon2D classes, the PolygonPredicate and DistancePredicate in GeoUtils, and the unused GeoRelationUtils utility. Compare the current organization with the attached LUCENE-8364.patch. Done means the core geo API is cleaner, more consistent, and easier to understand without changing its intended behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- search
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100