apache / apache/lucene

Refactor and clean up core geo api [LUCENE-8364]

Open
#9,411 10 comments 0 reactions 0 assignees View on GitHub
legacy-jira-priority:Major type:enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.